关于我建议使用的另一个问题
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
while (processingLock)
Application.DoEvents();
}
FormClosing事件中的(在完成冗长的计算后,processingLock立即变为false)。它应该有助于使应用程序以有序的方式关闭,并且原始海报不使用线程。
根据我建议的答案,有人评论DoEvents永远不会好,提供此链接:Use of Application.DoEvents()
我阅读并且(我认为)理解了这个问题。在我看来(仍然是noobish)如果我在FormClosing事件中使用如上所述的DoEvents,则没有发生混淆事件的风险 - 如果没有办法取消用户的结束(比如设置e.Cancel = true)
我的问题:这是一个有效的方法来确保应用程序被终止,如果没有,为什么?
答案 0 :(得分:0)
感谢评论和更多关于relevant posts的思考我已经弄清楚为什么FormClosing的这个“特殊情况”毕竟不是特别的。
问题是FormClosing事件期间表单不已禁用。用户不仅可以尝试多次关闭表单(在这种情况下也可以),但她也可以单击任何其他UI元素 - 导致执行顺序不确定等问题在链接文章中提到。
难得的概念,感谢您的投入。