Loading

c# AsyncLocal<T> ThreadLocal<T> ExecutionContext

using System;
using System.Threading;

namespace Cmd
{
    class Program
    {
        static void Main(string[] args)
        {
            var asynclocal = new AsyncLocal<int>();
            var threadlocal = new ThreadLocal<int>();

            asynclocal.Value = 1;
            threadlocal.Value = 2;

            //ExecutionContext.SuppressFlow();

            var timer = new Timer(state =>
            {
                Console.WriteLine("Task Threading num: {0}, state: {1}, asynclocal: {2}, threadlocal: {3}", Thread.CurrentThread.ManagedThreadId, state, asynclocal.Value, threadlocal.Value );
            }, 1, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(1));

            //ExecutionContext.RestoreFlow();

            Thread.Sleep(20000);

            Console.WriteLine("Hello World!");
        }
    }
}
posted @ 2021-07-08 00:49  microestc  阅读(109)  评论(0编辑  收藏  举报