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