task.delay 和 thread.sleep

1、Thread.Sleep 是同步延迟。 Task.Delay异步延迟。

2、Thread.Sleep 会阻塞线程,Task.Delay不会。

3、Thread.Sleep不能取消,Task.Delay可以。

4、反编译Task.Delay,基本上讲它就是个包裹在任务中的定时器。

5. Task.Delay() 比 Thread.Sleep() 消耗更多的资源,但是Task.Delay()可用于为方法返回Task类型;或者根据CancellationToken取消标记动态取消等待

6. Task.Delay() 实质创建一个运行给定时间的任务, Thread.Sleep() 使当前线程休眠给定时间。

Task.Delay(8000)
.ContinueWith((task) =>
{
if (task.IsCompleted)
{
   //要执行的方法;
}
});

Thread.Sleep(1000);

posted @ 2018-06-27 14:01  你狗懂嘛?  阅读(1082)  评论(0编辑  收藏  举报