Thread.Sleep与Task.Delay的区别
类别:编程学习 浏览量:1711
时间:2016-11-20 Thread.Sleep与Task.Delay的区别
Thread.Sleep与Task.Delay的区别1、Thread.Sleep 是同步延迟,Task.Delay异步延迟。
2、Thread.Sleep 会阻塞线程,Task.Delay不会。
3、Thread.Sleep不能取消,Task.Delay可以。
4、Thread.Sleep实例
(1)、代码
using System
using System.Threading;
namespace ThreadTest
{
public class A
{
public static void B()
{
while (true)
{
Console.WriteLine("A.B is running in its own thread.");
}
}
}
public class C
{
public static void Main()
{
Thread t = new Thread(new ThreadStart(A.B));
t.Start();
Thread.Sleep(5);
t.Abort();
t.Join();
Console.WriteLine("A.B has finished");
Console.ReadLine();
}
}
}
(2)、运行后显示若干行"A.B is running in its own thread."和一行"A.B has finished";
(3)、若取消程序中的“Thread.Sleep(5);”句,则运行后只显示"A.B has finished"。
5、Task.Delay()实例
// Thread.Sleep是同步延迟, Task.Delay异步延迟;
// Thread.Sleep不能取消,Task.Delay可以。
Task.Run(async () =>
{
//将任务延迟1000毫秒后运行,如果无限等待那么指定为-1
await Task.Delay(1000);
Console.WriteLine("Task Start");
//CancellationToken设置为true就是标志Task任务取消,为false和 await Task.Delay(1000)一样将任务延迟3000毫秒后运行
await Task.Delay(1000, new CancellationToken(true));
Console.WriteLine("这里不会被执行,因为任务取消了~");
});
标签:线程
您可能感兴趣
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- python线程池怎么设置(python自定义线程池控制线程数量的示例)
- tomcat集群如何实现线程安全(如何通过LambdaProbe实现监控Tomcat)
- python 多线程与多进程(python 多线程串行和并行的实例)
- linux多线程怎么设置(超详细讲解Linux C++多线程同步的方式)
- php脚本控制方法(php swoole多进程/多线程用法示例基于php7nts版)
- python 并发传输文件(python单线程文件传输的实例C/S)
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- js的异步请求(浅谈JS三座大山之异步和单线程)
- ftp上传工具使用方法(CuteFTP多线程FTP上传下载工具功能介绍)
- python多线程多种方法(详解python多线程之间的同步一)
- 进程和线程的区别有哪些
- python关闭程序强制退出线程(python多线程调用exit无法退出的解决方法)
- yield方法可以使一个线程停止运行(Yii2.0框架模型添加/修改/删除数据操作示例)
- tomcat 多线程并发cpu(Tomcat使用线程池处理远程并发请求的方法)
- laravel多线程处理请求(Laravel 6 将新增为指定队列任务设置中间件的功能)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
- vivo首款智能手表来了 也有血氧饱和度监测,一次充电18天续航(vivo首款智能手表来了)
- 你知道 七夕 的真正含义吗(你知道七夕的真正含义吗)
- 七夕的寓意(七夕的寓意)
- 苏志燮赵恩静结婚,韩国四大公共财产变三人,这么快就有替补了(苏志燮赵恩静结婚)
热门推荐
- dedecms搜索功能怎么设置详细(DEDECMS自定义联动类别调用及修改方法)
- html5创作(HTML5录音实践总结Preact)
- 宝塔面板怎么修改默认端口(如何修改宝塔Linux面板默认的端口号8888?)
- mysql主从复制如何解决延迟(MySQL 8.0.23中复制架构从节点自动故障转移的问题)
- css3动画按钮加光晕效果(CSS3 制作的悬停缩放特效)
- mysql常用存储方案及基本原理(详解分析MySQL8.0的内存消耗)
- 阿里云linux服务器怎么进(阿里云Linux主机安装WDCP管理面板包含lamp+lnmp+lanmp环境)
- mongodb连接池
- 远程桌面连接不上华为云服务器(华为云服务器远程桌面怎样实现复制粘贴?)
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9