线程连接方法

时间:2011-09-07 13:18:51

标签: c#-3.0

class Program
    {
        static void Main(string[] args)
        {
            ParameterizedThreadStart aStart = new ParameterizedThreadStart(Addition);
            Thread aThread = new Thread(aStart);
            Data aData = new Data();
            aData.X = 10;
            aData.Y = 20;

        aThread.Start(aData);
        aThread.Join();
        Console.WriteLine("End of the program");
    }


    static void Addition(object data)
    {
        var a = data as Data;
        var b = a.X + a.Y;
        a.result = b;

        Console.WriteLine(a.result);
        Thread.Sleep(1000);
        Console.WriteLine("End of thread");

    }
}  

我写了一个例子来理解Join方法(); 任何机构都能解释它是如何工作的吗和sleep()

之间有什么区别

3 个答案:

答案 0 :(得分:1)

  • Thread.Sleep

    阻止当前线程达到指定的毫秒数。

    - Thread.Join

    阻止调用线程直到线程终止(你不知道多长时间)

请注意,Thread.Join()方法只会阻塞调用线程(通常是应用程序的主要执行线程),直到线程对象完成为止。在等待特定的Thread完成执行时,您仍然可以在后台执行其他线程。

http://msdn.microsoft.com/en-us/library/system.threading.thread.join.aspx

答案 1 :(得分:0)

Join等待你调用它的线程停止。 Sleep睡了一段时间。

答案 2 :(得分:0)

它导致当前运行的线程停止执行,直到它加入的线程停止执行为止。连接方法等待线程死亡。