几种异步的区别

本文探讨了在.NET环境中使用线程池与直接创建Thread的优劣,并通过实例对比了两者在大量线程创建时的表现。介绍了在何种场景下更适合使用Thread而非线程池线程。

在执行异步操作时应使用基于线程池的操作,从代码的简洁程度和可读性上优先使用async/await方式。对于较老的.NET版本可以使用Task或ThreadPool。符合以下情况的可以使用Thread:

1、线程创建后需要持续工作到主线程退出的。这种情况下就算使用线程池线程也不会归还,实现不了复用,可以使用Thread。

2、线程在主线程退出后仍需要执行的,这种情况使用线程池线程无法满足需求,需要使用Thread并制定IsBackground为false(默认)。

 

在我编写的一个程序中创建500个Thread后,程序垮掉。然而创建500个BackGroundWorker后,程序就能正常运行。

还可以参考:http://bbs.youkuaiyun.com/topics/390504292

转载于:https://www.cnblogs.com/why1115/p/5424216.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值