2013-05-22 63 views
0

那麼,我有一個主線程和一個額外的。現在,我需要在關閉程序之前檢查其他線程,如果它正在運行 - 請問'是否終止',否則 - 關閉應用程序。如何在關閉程序之前檢查線程?

月1日編輯:

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     if (calculation.IsAlive) 
     { 
      e.Cancel = true; 
     } 
     else 
     { 
      // 
     } 
    } 

如何關閉應用程序。在'其他'部分?我覺得這很容易,但我找不到))

+4

聽起來很合理。你有什麼嘗試? – kenrogers

回答

3

檢查Thread.IsAlive()看看線程是否仍在運行。

2

Thread.IsAlive國旗將做的伎倆。

var t=new Thread(() => { }); 
      if (t.IsAlive) 
      { 
       //thread is still alive 
       //true if this thread has been started and has not terminated normally or aborted; 
      } 
      else 
      { 
       //not alive 
       //otherwise, false. 
      } 
+0

如果我沒有調用(.Start())我的附加線程,我想這不會起作用,對吧? – Alex

+0

在離開執行(UI線程)之前,您可以檢查其他線程是否仍在執行其工作的狀態。如果它仍然在做它的工作,那麼你可以等到它完成(以某種超時旋轉)或允許主線程完成是執行流程。 – Nair

+0

如果沒有看到代碼就很難確定任何問題。但要回答,是的。你必須開始它。請參閱此鏈接http://msdn.microsoft.com/en-us/library/7a2f3ay4(v=vs.80).aspx。否則,谷歌它的前景和背景線程,並肯定你會得到很多關於如何實現的示例 – Nair

相關問題