当前位置:  开发笔记 > 编程语言 > 正文

.NET的多线程库

如何解决《.NET的多线程库》经验,为你挑选了1个好方法。

我在一些程序中使用了多个线程,但仍然感觉不太舒服.

C#/ .NET的多线程库有哪些,哪一个优于另一个?

通过多线程库,我的意思是一切有助于使多线程编程更容易.

你定期使用什么.NET集成(比如ThreadPool)?你遇到了哪些问题?



1> Barry Kelly..:

在应用程序中使用多个线程有多种原因:

UI响应

并发操作

并行加速

应该选择的方法取决于你想要做什么.例如,对于UI响应,请考虑使用BackgroundWorker.

对于并发操作(例如服务器:一些不具备平行,但可能确实需要同时即使在单核系统),可以考虑使用线程池,或者,如果任务是长寿命和你需要很多,考虑每个任务使用一个线程.

如果你有一个所谓的令人尴尬的并行问题,可以很容易地分成小的子问题,可以考虑使用工作线程池(与CPU内核一样多的线程)从队列中提取任务.Microsoft 任务并行库(TPL)可能会有所帮助.如果作业可以很容易地表示为monadic流计算(即在LINQ中使用转换和聚合等工作进行查询),则在TPL之上运行的并行LINQ(相同链接)可能会有所帮助.

还有其他方法,例如在Erlang中看到的Actor风格的并行性,由于缺少绿色线程模型或实现相同的方法(如CLR支持的延续),因此在.NET中难以有效实现.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有