C#执行异步操作的几种方式总结比较

本文总结了C#中执行异步操作的四种方式:Thread、ThreadPool、Task以及C#5引入的async/await。通过模拟耗时任务,分析了它们的使用场景、效率和优缺点。推荐在大多数情况下使用基于线程池的Task或async/await,以提高代码可读性和性能。对于特定场景,如线程需要持续工作,可选择Thread。
摘要由CSDN通过智能技术生成

C#执行异步操作的几种方式总结比较

0x01 引言

之前写程序的时候在遇到一些比较花时间的操作例如HTTP请求时,总是会new一个Thread处理。对XxxxxAsync()之类的方法也没去了解过,倒也没遇到什么大问题。最近因为需求要求用DevExpress写界面,跑起来后发现比Native控件效率差好多。这才想到之前看到的“金科玉律”:不要在UI线程上执行界面无关的操作,因此集中看了下C#的异步操作,分享一下自己的比较和总结。

0x02 测试方法

IDE:VS2015 Community

.NET版本:4.5

使用函数随机休眠100到500毫秒来模拟耗时任务,并返回任务花费的时间,在UI线程上调用这个方法会造成阻塞,导致UI假死,因此需要通过异步方式执行这个任务,并在信息输出区域显示花费的时间。


主界面中通过各种不同按钮测试不同类型的异步操作


0x03 使用Thread进行异步操作

使用ThreadPool进行异步操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值