using System.Threading.Tasks;
private static async Task Main()
SynchronizationContext.SetSynchronizationContext(new CustomSyncContext());
await Task.WhenAll(t1, t2);
Console.WriteLine("end");
static async Task FunAsync()
SynchronizationContext old = SynchronizationContext.Current;
SynchronizationContext.SetSynchronizationContext(null);
SynchronizationContext.SetSynchronizationContext(old);
internal sealed class CustomSyncContext : SynchronizationContext
public override void Post(SendOrPostCallback d, object state)
Console.WriteLine("in Post");