2014-10-10 115 views
0

我有一個應用程序,其中一個線程用於計算一串數字,但問題是應用程序在線程完成計算並返回計算出的數字之前結束。在計算完成之前讓應用程序等待的方式是什麼?C#應用程序正在等待線程完成?

這裏是我的代碼:

namespace ThreadWaiting 
{ 
    class Program 
    { 
     public static int number=0; 

     public static void Main(string[] args) 
     { 
      Thread t = new Thread(Calculate); 
      t.Start(); 

      //Wait here until processed? 

      Console.WriteLine(number); 
      Console.ReadKey(); 
     } 

     private static void Calculate(object obj) 
     { 
      number = 2 + 2; 
     } 
    } 
} 

如果您運行,你會看到它打印出「0」,而不是「4」。

任何想法傢伙?謝謝!

+0

線程同步FTW! – 2014-10-10 12:49:35

+2

['Thread.Join'](http://msdn.microsoft.com/en-us/library/95hbf2ta(v = vs.110).aspx)就是你需要的所有東西 – DavidG 2014-10-10 12:49:50

回答

3

等到線程完成,你Join它:

t.Join(); 
+0

我應該在t.Start ()? – 2014-10-10 12:50:50

+0

如果你想在這一點上等待線程,那麼是的。雖然開始一個線程只是爲了等待它並沒有什麼意義。 – nvoigt 2014-10-10 12:51:39

+0

嗯,那麼處理線程中的輸出並檢索它的最佳方式是什麼? – 2014-10-10 12:53:20