這是更多的「我想知道」類問題,而不是真正的問題。在Visual Studio中執行線程處理需要Join才能正常工作
在提高我的線程技能的同時,我遇到了以下難題。
的源代碼
internal class Program
{
private static void Main(string[] args)
{
var thread = new Thread(() => Print("Hello from t"));
thread.Start();
//thread.Join();
}
private static void Print(string message)
{
Console.WriteLine(message);
}
}
如果我運行從Visual Studio應用程序(無論它是調試或發佈配置),message
永遠不會在顯示的問題輸出窗口除非我等待線程退出(使用Join
)。
解決方案
運行編譯在命令提示符下執行的,你看到預期的輸出。
我的問題
我會扔胡亂猜測,說Visual Studio環境使所有的差異。
我想知道的是,如果我正在研究一個真實世界的應用程序,我將如何使用Visual Studio調試所述應用程序,而不必強制修改源代碼(使用Join
)?
在真實世界的應用程序中,當程序有可能仍然很忙的線程時,你會愚蠢地讓程序退出。 – 2012-04-16 20:56:32
啊,啊!當然!謝謝大家的解釋。兩個答案都澄清了我的困惑。對不起,我只能標記一個作爲答案。 – 2012-04-16 21:02:27