由于您提到该进程是您自己的应用程序,因此您可以自己退出应用程序而不是杀死应用程序。你的问题更多是“我怎样才能退出我的程序”。
首先,您的按钮可能看起来没有响应,因为您正在运行无限循环。一种(不好的)方法是这样的:
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();
}