C#执行异步操作的几种方式总结比较
0x01 引言
之前写程序的时候在遇到一些比较花时间的操作例如HTTP请求时,总是会new一个Thread处理。对XxxxxAsync()之类的方法也没去了解过,倒也没遇到什么大问题。最近因为需求要求用DevExpress写界面,跑起来后发现比Native控件效率差好多。这才想到之前看到的“金科玉律”:不要在UI线程上执行界面无关的操作,因此集中看了下C#的异步操作,分享一下自己的比较和总结。
0x02 测试方法
IDE:VS2015 Community
.NET版本:4.5
使用函数随机休眠100到500毫秒来模拟耗时任务,并返回任务花费的时间,在UI线程上调用这个方法会造成阻塞,导致UI假死,因此需要通过异步方式执行这个任务,并在信息输出区域显示花费的时间。
主界面中通过各种不同按钮测试不同类型的异步操作

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

被折叠的 条评论
为什么被折叠?



