use*_*082 11 c# multithreading task threadpool
我有一个创建多个任务的循环,如下所示.每个任务完成后,如何更新屏幕(使用某些数据向文本框添加新行)?
如何检测所有任务何时完成?
C#代码
for (int i = 0; i < int.Parse(radTextBoxFloodRequests.Text); i++)
{
int x = i;
// Create a task and supply a user delegate by using a lambda expression.
var taskA = new Task(() => TaskRequest(int.Parse(radTextBoxFirstNumber.Text), int.Parse(radTextBoxSecondNumber.Text), int.Parse(radTextBoxFloodDelay.Text), x));
// Start the task.
taskA.Start();
}
private void TaskRequest(int number1, int number2, int delay, int count)
{
// Some long running method
}
Run Code Online (Sandbox Code Playgroud)
Use*_*678 16
你可以使用ContinueWith()
:
"创建在目标任务完成时异步执行的延续." - MSDN
Task t = new Task(() => Console.WriteLine("")).ContinueWith(task => Console.Writeline("Continue With"),
TaskScheduler.FromCurrentSynchronizationContext());
Run Code Online (Sandbox Code Playgroud)