public partial class MainWindow : window
{
private Thread t = new Thread;
private void btnSend_Click(object sender, RoutedEventArgs e)
{
if (t != null)
{
if (t.IsAlive == true)
{
t.Abort();
t = null; //Is this correct? should I free this before making null?
return;
}
t = new Thread(send.Image);
t.Start();
}
}
}
上面的代碼顯示了一個事件處理程序。當我按下一個名爲「發送」的按鈕時,應創建新的過程。當我點擊同一個按鈕時,程序應該停止。然後我再次按'發送',過程應該重新開始。線程應該創建在同一個對象't'中。應該釋放線程對象嗎? C#
您是否真的想根據用戶輸入中止上次發送?不知道發送什麼。圖像很難說,但這看起來不正確。背景工作者可能是更好的選擇。中止應該留給特殊情況,這與殺死一個過程沒有什麼不同,只有在沒有其他選擇的情況下才能完成,你應該有很多。 – 2012-04-04 08:58:52
考慮使用更抽象的usign線程方式,至少使用線程池或更好的TPL。關於使用waitHandle的 – 2012-04-04 09:00:38