c# - 任务完成

标签 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
 }

最佳答案

您可以使用 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/

相关文章:

c# - 保留顺序的 HashSet

c# - Unity3D-Google Play 64位要求存在问题

c# - 来自设置的常量字符串

c++ - 为工作线程任务实现分析器

multithreading - Delphi - 线程内定时器生成AV

c# - MVC Controller 无法执行异步方法

C#设置ListView的Item的Subitem的文本不显示

c# - 多线程工作线程状态

plugins - Gruntjs:如何执行复制任务以仅复制监视中的更改文件

asp.net-mvc - ASP.NET MVC : Executing a slow operation on the server and getting its state