我无法停止我的应用程序,因为我有一个while循环,所以gui不让我点击停止按钮,它看起来像:
private void btnStart_Click(object sender, EventArgs e)
{ while(true)
{
//some code here
}
}
//some methods here
private void btnStop_Click(object sender, EventArgs e)
{
Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)
首先,如果您正在运行某种长时间运行的后台作业,那么您不应该在UI线程中执行此操作,因为在您声明时,您无法在UI线程中执行任何其他操作来停止循环.您需要将该工作推迟到辅助线程,计时器或UI线程上下文之外的某些内容.您可以通过Google以多种不同方式实现此目标.
其次,如果需要停止循环,则将循环的while条件更改为true其他一些可监视条件,例如调用的变量keepRunning,然后可以在btnStop_Click方法中进行设置.当然,如果您在第一点采用我的建议,那么可能还有其他方法可以阻止loop运行,例如,如果它是一个计时器,那么您可以以适当的方式停止该计时器.
第三,您应该在关闭应用程序之前等待后台操作停止.