开发者社区> wenvi_wu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ThreadStatic

简介:
+关注继续查看
标记为 ThreadStaticAttribute 的静态(在 Visual Basic 中为 Shared)字段不在线程之间共享。每个执行线程都有单独的字段实例,并且独立地设置及获取该字段的值。如果在不同的线程中访问该字段,则该字段将包含不同的值。

注意 不要为标记为 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();
    }
  }
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
visual studio中运行docker支持简记
很久以前学过一段时间的docker,那时装了电脑卡得受不了,学了一会就卸载了,最近电脑又装上了docker,感觉好像没有以前这么卡了,还是同一台电脑surface pro4, 试了一下visual studio中做的网站运行在docker上,下面是一些简记 环境:win10 + docker de...
789 0
iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
原文:iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425) 问题描述:每隔一段时间应用程序池就会自动停止,报错:服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425) iis启动 服务无法在此时接受控制信息。
1652 0
redis TTL实现原理
TTL存储的数据结构  redis针对TTL时间有专门的dict进行存储,就是redisDb当中的dict *expires字段,dict顾名思义就是一个hashtable,key为对应的rediskey,value为对应的TTL时间。
1691 0
基于redis(key分段,避免一个key过大) 和db实现的 布隆过滤器(解决hash碰撞问题)
基于redis(key分段,避免一个key过大) 和db实现的 布隆过滤器(解决hash碰撞问题)
4718 0
C# semaphore信号量类(又称信号灯)
1、semaphore信号量类(又称信号灯) 用于控制对资源池的访问。线程通过调用semaphore的WaitOne进入信号量,通过调用semaphore的Release方法退出信号量。
624 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载