我有一个创建多个任务的循环,如下所示。 我如何在每个任务完成时更新屏幕(向包含一些数据的文本框添加新行)?
如何检测所有任务何时完成?
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
}
最佳答案
您可以使用 ContinueWith()
:
"Creates a continuation that executes asynchronously when the target Task completes." - MSDN
Task t = new Task(() => Console.WriteLine("")).ContinueWith(task => Console.Writeline("Continue With"),
TaskScheduler.FromCurrentSynchronizationContext());
关于c# - 任务完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801317/