.net – 对于长时间运行的进程来说,最好是手动执行线程而不是线程池吗?

我读了另一天,对于长时间运行的任务,我最好的办法是手动创建线程,而不是使用.NET的线程池或任务并行.当我正在学习c#线程,特别是长时间运行的IO任务时,我真的希望有人开启我.先谢谢你.

解决方法

那是真实的.线程池针对小型工作单元进行了优化,您可以通过持有线程池线程来干扰其他工作.

我的经验法则是如果一个操作可能需要一秒钟以上,它不应该在一个线程池线程上.那可能很长

虽然这是没有文档的,但如果您使用TaskCreationoptions.LongRunning启动任务,则会启动一个新的线程来运行该任务.

对于大多数IO任务,您应该真正使用的框架方法有异步版本.这些使用内核函数,意味着你不会阻止任何线程.

和往常一样,我建议阅读Joe Albahari’s free ebook,
其次是Joe Duffy’s Concurrent Programming on Windows.后期是1000页长,但充满了有用的细节.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...