using System.Threading.Tasks;
public static void Main(string[] args)
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
var task = LongRunningOperation(100000000, token);
Console.WriteLine("task started");
Console.WriteLine("task status : {0}", task.Status);
Console.WriteLine("task is about to cancelled");
Console.WriteLine("token cancelled");
Console.WriteLine("task status : {0}", task.Status);
Console.WriteLine("Press enter to continue");
Console.WriteLine("task completed");
private static Task<decimal> LongRunningOperation(int loop, CancellationToken canToken)
th = Thread.CurrentThread;
Console.WriteLine("cancelled called");
for (int i = 0; i < loop; i++)
Console.WriteLine("operation {0}",i);