gpt4 book ai didi

c# - 在 C# 中创建线程池

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:38 27 4
gpt4 key购买 nike

我有 300 个线程正在一个接一个地执行。我使用加入,所以它是一个接一个的。我想一次执行 N 个线程。

任何人都可以将我指向有关在 C# 中创建线程池(具有 N 个线程)的链接。我的情况是一次执行 N 个线程,其余线程将等待。当一个线程完成执行时,一个等待线程将进入执行。

感谢任何代码片段。非常感谢。

最佳答案

Join并不规定线程按顺序运行——它只是让当前线程在继续之前等待指定的线程完成。

因此,如果您启动 300 个线程,然后将它们全部连接起来,这 300 个线程将并行运行,并且连接线程将在 300 个线程完成后完成。

const int COUNT = 300;

// create and start the threads
var threads = new Thread[COUNT];
for (int index = 0; index < COUNT; index += 1)
{
threads[index] = new Thread(...);
threads[index].Start();
}

// now they're running, join them all
for (int index = 0; index < COUNT; index += 1)
{
threads[index].Join();
}

// we're done

重要的是你在开始加入之前启动它们,否则你将等待每个线程完成后再开始下一个,这样它们就真的是顺序的了。我猜这就是您正在做的事情?

关于c# - 在 C# 中创建线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917055/

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