gpt4 book ai didi

c# - 使用 Task.Factory.StartNew 新创建的线程启动非常慢

转载 作者:太空狗 更新时间:2023-10-29 17:43:20 28 4
gpt4 key购买 nike

在使用 Task.Factory.StartNew 创建的大约 50-200 个短期工作线程的 WPF/c# 应用程序中,新创建的线程开始执行需要 1 到 10 秒。

这个线程执行启动非常慢的原因是什么?

更新:延迟恰好是 500 毫秒

最佳答案

发现当使用的线程池线程数超过特定值时,线程池可能不愿意每 500 毫秒启动一个以上的新线程。但是使用 ThreadPool.SetMinThreads 增加 MinThreads - 尽管不推荐 - 到 100 使我能够创建 100 个线程而没有 500 毫秒的延迟。

以下是对我有帮助的内容:

编辑:

这是我在 App.xaml.cs(在构造函数中)中完成的操作:

// Get thread pool information
int workerThreadsMin, completionPortThreadsMin;
ThreadPool.GetMinThreads(out workerThreadsMin, out completionPortThreadsMin);
int workerThreadsMax, completionPortThreadsMax;
ThreadPool.GetMaxThreads(out workerThreadsMax, out completionPortThreadsMax);

// Adjust min threads
ThreadPool.SetMinThreads(workerThreadsMax, completionPortThreadsMin);

关于c# - 使用 Task.Factory.StartNew 新创建的线程启动非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com