3

我有一个扫描网络的程序,它通过使用大量等待数据从网络返回的任务(和并行 foreaches)来实现。问题是,虽然我知道这些任务几乎不使用任何 CPU 处理,但 CLR 没有,而且它坚持启动非常缓慢(特别是因为它运行在两核 CPU 上)。

如何强制 CLR 同时启动更多任务?目前程序正在等待很多,我怎样才能让它同时打开更多的连接?

4

1 回答 1

1

您可以使用不需要 TPL 启动新线程的异步 IO,也可以手动启动线程,也可以使用ThreadPool.SetMinThreads. 不要使用最后一个解决方案,因为这是一个进程范围的设置。不要为局部问题选择全局解决方案。

于 2012-08-23T20:15:49.680 回答