首先完成后如何在同一个线程实例上执行第二个方法

时间:2015-01-19 02:38:51

标签: c# multithreading

假设我有一个像

这样的线程
var th = new Thread(new ThreadStart(Method1));
th.Start();
th.Join(); //// wait for Method1 to finish

//// how to execute the Method2 on same thread th?

我想在完成Method1方法的同一个线程实例上执行Method。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

这是你想要做的吗?

using System;
using System.Threading;

public class Program
{
    public static void Main()
    {
        var th = new Thread(new ThreadStart(() =>
        {
            Method1();
            Method2();
        }

        ));
        th.Start();
        th.Join();
    }

    static void Method1()
    {
        Console.WriteLine("Method 1");
    }

    static void Method2()
    {
        Console.WriteLine("Method 2");
    }
}

答案 1 :(得分:2)

如果您使用的是任务并行库,则可以使用continuewith来排列任务。

Task.Factory.StartNew(() => action("alpha"))
        .ContinueWith(antecendent => action("beta")) 
        .ContinueWith(antecendent => action("gamma"));