亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在C#中立即殺死線程?

如何在C#中立即殺死線程?

C#
aluckdog 2019-11-18 12:59:46
我正在使用thread.Abort殺死線程的方法,但是它不起作用。還有其他終止線程的方法嗎?private void button1_Click(object sender, EventArgs e){    if (Receiver.IsAlive == true)    {        MessageBox.Show("Alive");        Receiver.Abort();    }    else    {        MessageBox.Show("Dead");        Receiver.Start();    }}我正在使用它,但是每次獲得Alive狀態時,它Receiver都是我的全局線程。
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

您可以通過這種方式立即殺死它:


private Thread _myThread = new Thread(SomeThreadMethod);


private void SomeThreadMethod()

{

   // do whatever you want

}


[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]

private void KillTheThread()

{

   _myThread.Abort();

}

我一直使用它并為我工作:)


查看完整回答
反對 回復 2019-11-18
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

首先,您應該具有一些同意的結束線程的方法。例如,線程可以檢查并遵守的running_ valiable。


您的主線程代碼應該包裝在一個異常塊中,該異常塊同時捕獲ThreadInterruptException和ThreadAbortException,這將在退出時徹底整理線程。


如果是ThreadInterruptException,則可以檢查running_變量以查看是否應該繼續。如果是ThreadAbortException,則應立即整理并退出線程過程。


試圖停止線程的代碼應執行以下操作:


running_ = false;

threadInstance_.Interrupt();

if(!threadInstance_.Join(2000)) { // or an agreed resonable time

   threadInstance_.Abort();

}


查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 1360 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號