using System.Threading.Tasks;
using System.Threading.Tasks.Dataflow;
using System.Diagnostics;
static AsyncLocal<string> _asyncLocalString = new AsyncLocal<string>();
public static async Task Main()
await Task.WhenAny(t1, t2).ConfigureAwait(false);
Console.WriteLine("Finished");
Console.WriteLine("Async local inside Main: " + _asyncLocalString.Value);
static async Task AsyncMethodA()
Console.WriteLine("Method A");
Console.WriteLine("Async local inside A: " + _asyncLocalString.Value);
static async Task AsyncMethodB()
_asyncLocalString.Value = "Value 3";
Console.WriteLine("Method B");
await AsyncMethodC().ConfigureAwait(false);
static async Task AsyncMethodC()
Console.WriteLine("Method C");
Console.WriteLine("Async local inside C: " + _asyncLocalString.Value);