我碰到一個問題,即使線程在後臺運行時,如果while(true)循環沒有在主方法中運行(沒有線程),應用程序仍會關閉。只有線程的控制檯關閉?
僞例如:
public static void Method1() {
while(true) {}
}
public static void Method2() {
while(true) {}
}
public static void main() {
Thread myThread1 = new Thread(() => Method1());
Thread myThread2 = new Thread(() => Method2());
myThread1.Start();
myThread2.Start();
}
現在,程序運行時,啓動線程後停止執行,即使正在運行的線程while循環無限。我如何使這個失效?我知道我可以在主要方法中添加一個無限循環,但這看起來很奇怪。
有人建議我使用互斥鎖或semaphone,但是我現在不會從哪裏開始,或者如何將它們應用到我的應用程序。
陌生,它不會退出我。 –
或者您可以使用TPL並對您生成的任務執行[WaitAll()](http://msdn.microsoft.com/en-us/library/dd270695%28v=vs.110%29.aspx)。 – slugster
你爲線程設置了'IsBackground = true'嗎? –