我无法阻止我的应用,因为我有一个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();
}
答案 0 :(得分:6)
首先,如果您正在运行某种长时间运行的后台作业,那么您不应该在UI线程中执行此操作,因为在您声明时,您无法在UI线程中执行任何其他操作来停止循环。您需要将该工作推迟到辅助线程,计时器或UI线程上下文之外的某些内容。您可以通过Google以多种方式实现此目标。
其次,如果您需要停止循环,则将循环的while条件从true
更改为其他一些可监控条件,例如:一个名为keepRunning
的变量,您可以在btnStop_Click
方法中设置该变量。当然,如果您在第一点采纳我的建议,那么可能还有其他方法可以阻止loop
运行,例如如果它是一个计时器,那么你可以以适当的方式停止该计时器。
第三,您应该在关闭应用程序之前等待后台操作停止。