【发布时间】:2014-08-25 08:44:12
【问题描述】:
关于我建议使用的另一个问题
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
while (processingLock)
Application.DoEvents();
}
在 FormClosing 事件中(在完成冗长的计算后, processingLock 立即变为 false)。它的目的应该是让应用程序有条不紊地关闭,并且原始发布者没有使用线程。
在我建议的答案中,有人评论说 DoEvents 永远不好,提供此链接:Use of Application.DoEvents()
我阅读并(我认为)理解了这个问题。在我看来(这仍然是愚蠢的)如果我在 FormClosing 事件中使用上述 DoEvents 则不会发生混淆事件的风险 - 如果无法取消用户的关闭(例如设置 e.Cancel = true) .
我的问题:这是确保应用程序正常终止的有效方法吗?如果不是,为什么?
【问题讨论】:
-
当用户疯狂地敲击窗口的关闭按钮以试图将其关闭并反复触发 FormClosing 事件时,您期望会发生什么?如果您不知道,您肯定不知道,您是否愿意编写行为无法预测的代码?你至少测试过吗?没有理由避免编写正确的代码,您可以隐藏窗口并在“处理”结束时将其关闭。
标签: c# formclosing doevents