微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

解决方法

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

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

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

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

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

原文地址:https://www.jb51.cc/csharp/95829.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐