如何实现多线程并并行执行几个任务?

阿卡什

我是线程编程的新手。我必须在PARALLEL和后台运行一些任务(以便主UI执行线程保持对用户操作的响应),并等待它们中的每一个完成,然后再继续执行。

就像是:

foreach(MyTask t in myTasks)
{
  t.DoSomethinginBackground(); // There could be n number of task, to save 
                               // processing time I wish to run each of them 
                               // in parallel
}

// Wait till all tasks complete doing something parallel in background


Console.Write("All tasks Completed. Now we can do further processing");

我了解可以通过多种方式实现这一目标。但是我正在寻找在.Net 4.0(C#)中实现的最佳解决方案。

诺洛纳尔

对我来说,好像你想要 Parallel.ForEach

Parallel.ForEach(myTasks, t => t.DoSomethingInBackground());

Console.Write("All tasks Completed. Now we can do further processing");

您还可以在一个循环中执行多个任务

List<string> results = new List<string>(myTasks.Count);
Parallel.ForEach(myTasks, t =>
{
    string result = t.DoSomethingInBackground();
    lock (results)
    { // lock the list to avoid race conditions
        results.Add(result);
    }
});

为了使主UI线程保持响应状态,您将需要使用BackgroundWorker并订阅其DoWorkandRunWorkerCompleted事件,然后调用

worker.RunWorkerAsync();
worker.RunWorkerAsync(argument); // argument is an object

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++,当每个工作线程必须执行几个不同的任务时,如何为任务实现线程池

来自分类Dev

Python多线程不会并行执行

来自分类Dev

定制的多线程:限制要并行执行的某种类型的任务数量,而不限制其他类型的任务

来自分类Dev

定制的多线程:限制要并行执行的某种类型的任务数量,而不限制其他类型的任务

来自分类Dev

多线程在C ++中执行单个任务

来自分类Dev

如何在iOS Swift中执行多线程,并发或并行处理?

来自分类Dev

如何使用多线程并行执行具有不同参数的方法?

来自分类Dev

在Vec上实现并行/多线程合并排序

来自分类Dev

如何让多线程处理不同的任务

来自分类Dev

在PHP中并行/多线程执行文件

来自分类Dev

如何实现请求的多线程或多处理

来自分类Dev

如何在Python中实现多线程?

来自分类Dev

如何使用Ruby的Fibers实现并行任务?

来自分类Dev

几个线程的多个任务

来自分类Dev

如何在iOS中执行多线程?

来自分类Dev

如何使用多线程执行子流程

来自分类Dev

将执行从一个线程转移到另一个线程以实现任务并行性和逐个调用

来自分类Dev

Python和C / C ++多线程:在C的后台运行几个执行python的线程

来自分类Dev

Spark如何在多核或超线程机器上的一项任务中实现并行性

来自分类Dev

多线程并行选择排序

来自分类Dev

C#使用多线程或并行执行来执行SQL SP

来自分类Dev

并行执行任务

来自分类Dev

并行任务执行顺序

来自分类Dev

多线程/任务差异最小,如何加快处理速度

来自分类Dev

多线程可以执行单个任务,从而使该任务快速完成吗?在Java中

来自分类Dev

python中使用并行线程的多线程

来自分类Dev

如何用线程解决任务执行问题?

来自分类Dev

了解并行线程执行

来自分类Dev

多线程:2个任务

Related 相关文章

  1. 1

    C ++,当每个工作线程必须执行几个不同的任务时,如何为任务实现线程池

  2. 2

    Python多线程不会并行执行

  3. 3

    定制的多线程:限制要并行执行的某种类型的任务数量,而不限制其他类型的任务

  4. 4

    定制的多线程:限制要并行执行的某种类型的任务数量,而不限制其他类型的任务

  5. 5

    多线程在C ++中执行单个任务

  6. 6

    如何在iOS Swift中执行多线程,并发或并行处理?

  7. 7

    如何使用多线程并行执行具有不同参数的方法?

  8. 8

    在Vec上实现并行/多线程合并排序

  9. 9

    如何让多线程处理不同的任务

  10. 10

    在PHP中并行/多线程执行文件

  11. 11

    如何实现请求的多线程或多处理

  12. 12

    如何在Python中实现多线程?

  13. 13

    如何使用Ruby的Fibers实现并行任务?

  14. 14

    几个线程的多个任务

  15. 15

    如何在iOS中执行多线程?

  16. 16

    如何使用多线程执行子流程

  17. 17

    将执行从一个线程转移到另一个线程以实现任务并行性和逐个调用

  18. 18

    Python和C / C ++多线程:在C的后台运行几个执行python的线程

  19. 19

    Spark如何在多核或超线程机器上的一项任务中实现并行性

  20. 20

    多线程并行选择排序

  21. 21

    C#使用多线程或并行执行来执行SQL SP

  22. 22

    并行执行任务

  23. 23

    并行任务执行顺序

  24. 24

    多线程/任务差异最小,如何加快处理速度

  25. 25

    多线程可以执行单个任务,从而使该任务快速完成吗?在Java中

  26. 26

    python中使用并行线程的多线程

  27. 27

    如何用线程解决任务执行问题?

  28. 28

    了解并行线程执行

  29. 29

    多线程:2个任务

热门标签

归档