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!");
}
}
}
c# AsyncLocal<T> ThreadLocal<T> ExecutionContext