.net - 最大化线程数以充分利用所有可用资源而不影响整体性能

标签 .net .net-3.5 multithreading

假设我必须生成一堆结果文件,并且我想让它尽可能快。每个结果文件都是独立于任何其他结果文件生成的;事实上,可以说每个结果文件都与其他结果文件无关。用于生成每个结果文件的资源对于每个结果文件也是唯一的。如何动态确定同时运行的最佳线程数以最小化整体运行时间?我唯一的选择是编写自己的线程管理器来监视性能计数器并进行相应调整,还是存在一些已经完成此任务的可靠类?

最佳答案

如果没有进一步的细节,我会假设这个任务是 I/O 绑定(bind)的,而不是 CPU 绑定(bind)的,所以你可能只会增加我启动多个线程的开销。我建议使用异步 I/O,从而让线程池处理细节。诚然,这可能不是最佳解决方案,但它仍然是我的第一次尝试,因为它可能会足够好。

关于.net - 最大化线程数以充分利用所有可用资源而不影响整体性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791166/

相关文章:

.net - WCF 契约(Contract)方法可以返回 null 吗?

visual-studio - MSBuild 在 VS2010/2013 成功的地方失败 - 混合 3.5 和 4.0 - 为什么?

java - C#语言等同于ScheduledExecutorService

c++ - 在第二个线程上加载 OpenGL 资源

multithreading - VM 上的 Azure "Percentage CPU"指标

.net - 计算机视觉库

c# - 整个解决方案的Visual Studio快速切换平台

c# - WCF channel 和 ChannelFactory 缓存

.net-3.5 - Win 2008 r2 x64 服务器是否已经安装了 .net 3 sp1 软件包?

c# - 有没有办法做到这一点,在 List<T>.ForEach() 语句中分配一个值?