我们有一个应用程序运行在显示奇怪行为的客户端。在白天的随机时间,某些窗体上的确定按钮(它调用Form.Close方法)不会导致窗体关闭。与此我的意思是,用户将单击按钮,在跟踪中它将显示该Form.Close被调用,但表单不会关闭。窗体调用Form.Close后不关闭
奇怪的是,表单本身仍然是响应,所以他们可以点击窗体上的任何按钮,按钮后面的代码将执行,但窗体不会关闭。
这种状态持续几秒到几分钟之间的任何事情。然后突然之间表单将开始处置并消失。真奇怪。
因此,要回顾一下,会发生以下情况:
Form.ShowDialog()
- >形式显示- 用户处理形式,并按下按钮等等
Form.Close()
被称为 - >用户点击了关闭按钮- 一段时间过去了,表单正在等待关闭,同时仍然响应(此时沮丧的用户敲击关闭按钮几次而没有响应)
- 突然形式处置和对话的结果从
Form.ShowDialog
东西还给注意:
- 我没有使用任何类型的线程的。
- 在某些时候,据报道在PC上停止了
explorer.exe
进程,这是否会影响表单的行为?我们正在安排PC的重建。
我的问题是,如果有人知道可能导致上述行为的情况?
我不是专家,但据我了解,当你打电话给Form.Close
时,窗体并不立即关闭,当前调用Close的第一个方法结束,然后另一个进程触发窗体开始关闭,处置。
这可能与explorer.exe
进程没有运行有关吗?
任何有识之士将不胜感激。
***编辑
还要注意的是,我们不能复制的问题,它在客户端随机发生。
可能[这](http://stackoverflow.com/questions/8113334/winforms-form-wont-close-on-pressing-x-or-close-in-c-sharp)可能吗? –
https://stackoverflow.com/questions/3912836/c-sharp-why-does-form-close-not-close-the-form#answer-19313930 –
@SimonKarlsson我看看你的链接,但它不是同样的情况。 Close方法在模态表单上被调用,因此问题不在阻塞调用中。还要注意,我们不能复制这个问题,它是随机发生的。 – user2418900