在另一个问题上我建议使用
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
while (processingLock)
Application.DoEvents();
}
在 FormClosing 事件中(在完成冗长的计算后,processingLock 立即变为 false)。它的目的应该是让应用程序以有序的方式关闭,并且原始发布者没有使用线程。
在我建议的答案中,有人评论说 DoEvents 从来都不好,并提供了以下链接:使用Application.DoEvents() https://stackoverflow.com/questions/5181777/use-of-application-doevents/5183623#5183623
我阅读并(我认为)理解了这个问题。在我看来(这仍然是小菜一碟),如果我在 FormClosing 事件中使用上面的 DoEvents,则不会有发生混淆事件的风险 - 如果没有办法取消用户的关闭(例如设置 e.Cancel = true) 。
我的问题:这是确保应用程序正常终止的有效方法吗?如果不是,为什么?
感谢评论和更多思考相关帖子 http://blog.codinghorror.com/is-doevents-evil/我已经弄清楚为什么 FormClosing 的这种“特殊情况”毕竟并不特殊。
问题是表格是not在 FormClosing 事件期间禁用。用户不仅可以尝试多次关闭表单(在这种情况下这是可以的),而且她还可以单击任何其他 UI 元素- 导致链接文章中提到的执行顺序不确定等问题。
对于菜鸟来说很难概念,感谢您的投入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)