c# - 如何运行多个线程并等待完成所有线程

标签 c# multithreading async-ctp c#-5.0

我想编写一个运行多个线程的方法,并且我希望在我的方法结束之前使用 async/await 确保所有线程都已完成。我该怎么做?

请考虑这个伪代码:

private async void SomeWork()
{
    var a = doWork1();
    var b = doWork2();
    var c = doWork3();
    var d = doWork4();
    ...
    //I want to assure that all of above thread are complete using `C#-5` new features   
}

我该怎么做?

最佳答案

执行此操作的async 方法是让您的方法返回一个Task,然后该方法的调用者将await(或Wait()) 它。您的方法可能如下所示:

private async Task SomeWork()
{
    var a = doWork1();
    var b = doWork2();
    var c = doWork3();
    var d = doWork4();
    ...
    await Task.WhenAll(a, b, c, d);
}

关于c# - 如何运行多个线程并等待完成所有线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870348/

相关文章:

c# - 有没有手机的编译器模拟器?

c# - 违反主键约束,无法插入重复键 - 在新的空表中

c# - 如何恢复此 rss 提要的图像?

visual-studio-2010 - 在 Windows 8 上的 Visual Studio 2010 中启用异步 CTP

c# - 给定的规则集不包含任何类型为 System.Object、mscorlib、

java - 缓冲 VBO 数据的小延迟

Java:线程共享数据的框架

c - 在 Linux 中如何进行 CPU 分配?线程级还是进程级?

mstest - 异步 CTP v3、MS 测试和 Thread.Sleep

c# - 异步快速路径