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);

 

posted on 2013-07-29 06:03  yao2yao4  阅读(186)  评论(0编辑  收藏  举报

导航