gpt4 book ai didi

c# - TaskFactory,结束时开始一个新任务

转载 作者:行者123 更新时间:2023-11-30 13:45:09 30 4
gpt4 key购买 nike

我发现了很多使用 TaskFactory 的方法,但我找不到任何有关启动更多任务以及观察一个任务何时结束并开始另一个任务的方法。

我总是希望有 10 个任务在工作。

我想要这样的东西

int nTotalTasks=10;
int nCurrentTask=0;

Task<bool>[] tasks=new Task<bool>[nThreadsNum];

for (int i=0; i<1000; i++)
{
string param1="test";
string param2="test";

if (nCurrentTask<10) // if there are less than 10 tasks then start another one
tasks[nCurrentThread++] = Task.Factory.StartNew<bool>(() =>
{
MyClass cls = new MyClass();
bool bRet = cls.Method1(param1, param2, i); // takes up to 2 minutes to finish
return bRet;
});

// How can I stop the for loop until a new task is finished and start a new one?
}

最佳答案

查看 Task.WaitAny方法:

Waits for any of the provided Task objects to complete execution.

文档中的示例:

var t1 = Task.Factory.StartNew(() => DoOperation1());
var t2 = Task.Factory.StartNew(() => DoOperation2());

Task.WaitAny(t1, t2)

关于c# - TaskFactory,结束时开始一个新任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259122/

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