using System.Threading.Tasks;
public static void Main(string[] args)
var cts = new CancellationTokenSource();
var t = Task.Run(async () => await DoSomeWork(cts.Token));
Console.WriteLine("Waiting 5 seconds");
Console.WriteLine("Requesting cancellation");
Console.WriteLine("Done");
private static async Task DoSomeWork(CancellationToken token)
while(!token.IsCancellationRequested)
Console.WriteLine("Sure, this works");
Console.WriteLine("Exiting");