gpt4 book ai didi

c# - 限制同时执行任务的数量

转载 作者:太空狗 更新时间:2023-10-29 18:11:09 33 4
gpt4 key购买 nike

考虑这是一个巨大的任务池:

var tasks = new Task[4]
{
Task.Factory.StartNew(() => DoSomething()),
Task.Factory.StartNew(() => DoSomething()),
Task.Factory.StartNew(() => DoSomething()),
Task.Factory.StartNew(() => DoSomething()),
Task.Factory.StartNew(() => DoSomething())
};

Task.WaitAll(tasks);

如果我只想同时运行 3 个任务怎么办?我将如何在代码中实现它?

最佳答案

一个比 MSDN 版本简单的示例是使用 Parallel.Invoke 设置最大并行度:

Parallel.Invoke(
new ParallelOptions() { MaxDegreeOfParallelism = 3 },
() => DoSomething(),
() => DoSomething(),
() => DoSomething(),
() => DoSomething(),
() => DoSomething());

然而,Parallel.Invoke() 将阻塞,直到所有并行操作完成(这意味着 parallel.invoke 之外的代码将在它们全部完成之前运行)。如果这对您不起作用,那么您最终将需要创建自己的任务计划程序,如 Daniel 链接的 MSDN 文章所示。

关于c# - 限制同时执行任务的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774995/

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