既然你提到的過程是你自己的應用程序,你可以直接退出應用程序而不是kil處理應用程序。你的問題更多的是「我怎樣才能退出我的計劃」。
首先,由於您運行的是無限循環,因此您的按鈕可能看起來並不敏感。這樣做的一個(壞)的方式是這樣的:
private bool _exit = false; //member variable
while(true && !_exit)
{
Application.DoEvents();
}
Application.DoEvents
重要的是使你的應用程序繼續聽其他動作。然後,
private void btn_Click(object sender, EventArgs e)
{
_exit = true;
}
imo的理想方法是將從服務器獲取數據的工作轉移到後臺進程。可能是這樣的:
BackgroundWorker _backgroundWorker = new BackgroundWorker(); //member field
void Listen()
{
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.DoWork += (sender, e) => { while(condition)//bla bla; }
_backgroundWorker.RunWorkerAsync();
}
然後在您的取消點擊,
private void btn_Click(object sender, EventArgs e)
{
_backgroundWorker.CancelAsync();
}
你的意思是暫停一個線程? –
我想暫停線程並殺死它..我認爲它會比直接查殺更快地退出此應用程序 – user1776177
殺死進程不是正確的方法。過程是你自己的過程嗎?或者它是一個單獨的應用程序? – nawfal