2013-04-05 67 views
1

在我的C#應用程序中,我有一個單獨的窗口,其中包含一個在單獨線程中運行的進度欄。每30秒鐘發送一次來自服務器的數據請求並相應地填寫進度條。檢測線程何時關閉

問題是,當我關閉主程序時,帶進度條的第二個窗口保持打開狀態。

如何編程第二個線程來檢測第一個線程何時關閉,並相應地關閉自己?

+0

第二個線程是後臺線程嗎? – Yahya 2013-04-05 15:45:44

+0

如何響應關閉事件並手動終止第二個線程? – geniaz1 2013-04-05 15:46:22

回答

0

你可以從你的第一個窗口使用WINDOW_CLOSED事件:

private void Window1_Closed(object sender, EventArgs e) 
{ 
    Window2.Close(); // Close your second window 
} 

然後在第二個窗口:

private void Window2_Closed(object sender, EventArgs e) 
{ 
    // abort all Threads 
    thread.Abort(); 
} 
+0

關閉窗口不一定會關閉任何後臺線程。 – 2013-04-05 15:49:36

+0

@安迪謝謝。我在第一個窗體上使用FormClosed事件,就像你所建議的那樣,然後使用'thread.Abort()' - 關閉第二個窗口並中止第二個線程。 – 2013-04-05 15:51:18

+0

也歡迎堆棧溢出,安迪:) – 2013-04-05 15:51:49