Yip*_*Yay 5 c# parameters multithreading threadpool
什么是来设置适当的方式ThreadPool在C#?
ThreadPool.SetMaxThreads(int workerThreads, int completionPortThreads)
Run Code Online (Sandbox Code Playgroud)
我希望线程数等于处理器核心数,但我不确定异步I/O线程(第二个参数).
我可以简单地说出ThreadPool.SetMaxThreads(Environment.ProcessorCount, 0)O/S推断第二个参数本身吗?
最大完成端口线程由异步任务使用,例如Socket.Begin*或Socket.*Async与其他IO相关的任务.我建议如果你更改工作线程,那么你应该在更改值之前检查当前最大完成线程数是多少:
int maxWorkerThreads;
int maxCompletionThreads;
// Get the maximum number of completion threads
ThreadPool.GetMaxThreads(out maxWorkerThreads, out maxCompletionThreads);
// Set the new max worker threads, but keep the old max completion threads
ThreadPool.SetMaxThreads(someDifferentValue, maxCompletionThreads);
Run Code Online (Sandbox Code Playgroud)
我认为默认情况下,最大完成线程数是1000,但这可能因机器而异.为了安全起见,请使用从GetMaxThreads函数中获得的值.
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |