我有一个扫描网络的程序,它通过使用等待数据从网络返回的许多任务(和并行的foreaches)来实现。问题是虽然我知道这些任务几乎不使用任何CPU处理,但CLR却没有,它坚持要非常缓慢地启动(特别是因为它在双核CPU上运行)。
如何强制CLR同时启动更多任务?目前该程序正在等待很多,如何让它同时打开更多连接?
答案 0 :(得分:1)
您既可以使用不需要TPL启动新线程的异步IO,也可以手动启动线程,也可以使用ThreadPool.SetMinThreads
。不要使用最后一个解决方案,因为这是一个流程范围的设置。不要为本地问题选择全局解决方案。