DoEvents()在FormClosing中也是邪恶的吗?

时间:2014-08-25 08:44:13

标签: c# formclosing doevents

关于我建议使用的另一个问题

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)

我的问题:这是一个有效的方法来确保应用程序被终止,如果没有,为什么?

1 个答案:

答案 0 :(得分:0)

感谢评论和更多关于relevant posts的思考我已经弄清楚为什么FormClosing的这个“特殊情况”毕竟不是特别的。

问题是FormClosing事件期间表单已禁用。用户不仅可以尝试多次关闭表单(在这种情况下也可以),但她也可以单击任何其他UI元素 - 导致执行顺序不确定等问题在链接文章中提到。

难得的概念,感谢您的投入。