zoukankan      html  css  js  c++  java
  • ThreadStatic(转)

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

    使用场景:
    例如通过 [ThreadStatic] private static string ThreadId; 可以标记一个自己生成的Thread ID,这样这个独立的线程中所的所有事情可以通过这个ID来识别,可以生成这个线程的程序流水作业日志等。

    注意:
    建议不要为标记为 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();
        }
      }
  • 相关阅读:
    js判断手机端Android手机还是iPhone手机
    网站中增加微信公众账号链接的方法
    人人网的账号登录及api操作
    腾讯微博的账号登录及api操作
    QQ的账号登录及api操作
    新浪微博的账号登录及api操作
    开心网的账号登录及api操作
    豆瓣的账号登录及api操作
    判断手机旋转代码 屏幕旋转的事件和样式
    jQuery实现长按按钮触发事件的方法
  • 原文地址:https://www.cnblogs.com/059212315/p/2457482.html
Copyright © 2011-2022 走看看