using System.Threading.Tasks;
public static async Task Main()
var cts = new CancellationTokenSource();
var task = Task.Run(async () =>
await Task.Delay(TimeSpan.FromSeconds(30), cts.Token);
catch (TaskCanceledException) { }
Thread.Sleep(TimeSpan.FromSeconds(3));
Thread.Sleep(TimeSpan.FromSeconds(3));