Task相关
1、Task的优势:
1)把任务当成变量来用,可以作为参数而传递;
2)可以捕获到异步操作中发生的异常。
2、开始异步
Task.Factory.StartNew(() => Thread.Sleep(1000));
此方式生成后即开始,效率更高;而new的方式需要手动Start。
3、异步完成时的同步操作
task.ContinueWith(t => Thread.Sleep(1000), TaskContinuationOptions.ExecuteSynchronously);
返回的Task因为不需要Start,所以可以不接。
4、异步取消
var cts = new CancellationTokenSource(); var task = new Task(() => { var i = 0; while (!cts.IsCancellationRequested) { i++; if (i > 10) { cts.Cancel(); } Thread.Sleep(100); } }, cts.Token);