c# - c# - 如何在第一个和第二个方法之后执行第三个方法

标签 c# .net multithreading .net-4.0 task-parallel-library

我有两个方法通过使用 Task 类在线程中运行。我有第三种方法在主线程中执行。我希望在第一种和第二种方法之后执行第三种方法。如何在以下代码中执行此操作。在 Firstmethod()Secondmethod() 之后只有 Thirdmethod() 被执行

static void Main(string[] args)
{
    Task.Factory.StartNew(() => { Firstmethod();
    });
    Task.Factory.StartNew(() => { Secondmethod();
    });

        Thirdmethod();
    Console.ReadLine();
}

static void Firstmethod()
{
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine(i);
    }
}
static void Secondmethod()
{
    for (int i = 10; i < 20; i++)
    {
        Console.WriteLine(i);
    }
}
static void Thirdmethod()
{
    for (int i = 20; i < 30; i++)
    {
        Console.WriteLine(i);
    }
}

最佳答案

使用Task.WaitAll .它在 .NET 4.0 中可用。

static void Main(string[] args)
{
    Task t1 = Task.Factory.StartNew(() => {
        Firstmethod();
    });
    Task t2 = Task.Factory.StartNew(() => {
        Secondmethod();
    });

    Task.WaitAll(t1, t2);
    Thirdmethod();
    Console.ReadLine();
}

关于c# - c# - 如何在第一个和第二个方法之后执行第三个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322200/

相关文章:

java - Java Synchronized 如何比较锁定的对象?

c# - 具有自动递增文件版本的固定程序集版本?

c# - 根据分数和校园将学生分组 - ASP.NET、VB 和 SQL

c# - 你如何遍历多维数组?

c - 转换和取消引用 void* 时出现段错误

java - 使用线程发出数据库请求

c# - byte[] 不包含 concat 的定义

c# - 从字符串转换为 char* 仅复制第一个字符

c# - 在 ASP.NET MVC 中使用路由映射到 ASMX 服务

c# - 使用不可选择的项目创建 WinForms ComboBox