gpt4 book ai didi

c# - 有一组任务,一次只运行 X

转载 作者:IT王子 更新时间:2023-10-29 04:20:28 26 4
gpt4 key购买 nike

假设我有 100 个任务来完成需要 10 秒的任务。现在我只想一次运行 10 个,比如当这 10 个中的 1 个完成时,另一个任务将被执行,直到所有任务都完成。

现在我总是使用 ThreadPool.QueueUserWorkItem() 来完成这样的任务,但我读到这样做是不好的做法,我应该改用 Tasks。

我的问题是我在任何地方都找不到适合我的场景的好例子,所以你能告诉我如何使用 Tasks 实现这个目标吗?

最佳答案

SemaphoreSlim maxThread = new SemaphoreSlim(10);

for (int i = 0; i < 115; i++)
{
maxThread.Wait();
Task.Factory.StartNew(() =>
{
//Your Works
}
, TaskCreationOptions.LongRunning)
.ContinueWith( (task) => maxThread.Release() );
}

关于c# - 有一组任务,一次只运行 X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075029/

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