ThreadStatic
来源:互联网 发布:淘宝小号怎么找回来 编辑:程序博客网 时间:2024/04/30 13:40
标记为 ThreadStaticAttribute 的静态(在 Visual Basic 中为 Shared)字段不在线程之间共享。每个执行线程都有单独的字段实例,并且独立地设置及获取该字段的值。如果在不同的线程中访问该字段,则该字段将包含不同的值。
注意 不要为标记为 ThreadStaticAttribute 的字段指定初始值,因为这样的初始化只会发生一次,因此在类构造函数执行时只会影响一个线程。在不指定初始值的情况下,如果它是值类型,可依赖初始化为其默认值的字段,如果它是引用类型,则可依赖初始化为空引用(Visual Basic 中为 Nothing)的字段。
注意 不要为标记为 ThreadStaticAttribute 的字段指定初始值,因为这样的初始化只会发生一次,因此在类构造函数执行时只会影响一个线程。在不指定初始值的情况下,如果它是值类型,可依赖初始化为其默认值的字段,如果它是引用类型,则可依赖初始化为空引用(Visual Basic 中为 Nothing)的字段。
class Program
{
[ThreadStatic] static int i;
static Random r = new Random();
public static void ThreadProc()
{
i = r.Next(1, 10);
while (true)
{
Console.WriteLine("{0}:{1}", Thread.CurrentThread.Name, i);
Thread.Sleep(500);
}
}
public static void Main()
{
for (int i = 0; i < 2; i++)
{
Thread t = new Thread(new ThreadStart(ThreadProc));
t.Name = "T" + i.ToString();
t.Start();
}
Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}
{
[ThreadStatic] static int i;
static Random r = new Random();
public static void ThreadProc()
{
i = r.Next(1, 10);
while (true)
{
Console.WriteLine("{0}:{1}", Thread.CurrentThread.Name, i);
Thread.Sleep(500);
}
}
public static void Main()
{
for (int i = 0; i < 2; i++)
{
Thread t = new Thread(new ThreadStart(ThreadProc));
t.Name = "T" + i.ToString();
t.Start();
}
Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}
- ThreadStatic
- ThreadStatic attribute
- ThreadStatic属性用法
- ThreadStatic属性用法
- 线程静态字段(ThreadStatic) 延迟初始化
- ThreadStatic静态字段在每个线程里的唯一性
- NET(C#):线程本地存储(Thread-Local Storage)之ThreadStatic, LocalDataStoreSlot和ThreadLocal<T>
- Google即将开始深度Web索引
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- ABAP Get SAP Login Name and Windows Domain User Name.
- 程序员创业,不要把风险带给家人!
- C#编程规范(2008年4月新版)
- ThreadStatic
- C#实现全键盘操作comboBox
- 事件注册与潜在隐患
- 计算两个日期之间的工作天数
- Web—无组件上传的原理
- 用于AVR单片机的USBasp
- C#中常用的经典文件操作方法
- ATL中使用正则表达式
- 我的第一份兼职