首页 > 代码库 > ThreadContext

ThreadContext

//#define UseThreadContextusing System;using System.Collections.Generic;using System.Linq;using System.Runtime.Caching;using System.Runtime.Remoting.Messaging;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleApplication7{    class Program    {        static void Main(string[] args)        {            TestContext();        }        private static void TestContext()        {            for (int i = 0; i < 10000; i++)            {                var j = i;                var t = new Thread(() =>                {                    MyThreads m = new MyThreads();                    m.Run(j);                    Thread.Sleep(new Random(i).Next(1, 9));                    m.Print();                });                t.Start();            }            Console.ReadKey();        }        public class MyThreads        {            private int I;#if !UseThreadContext            [ThreadStatic]            private static int x;#endif            public void Run(int i)            {                this.I = i;#if UseThreadContext                CallContext.HostContext = i;#else                x = i;#endif            }            public void Print()            {#if UseThreadContext                var contexti = (int)CallContext.HostContext;#else                var contexti = x;#endif                if (contexti != I)                {                    throw new Exception("not Equals" + contexti + "VS" + I);                }                Console.WriteLine(contexti);            }        }

ThreadContext