我们在客户端上运行的应用程序出现了奇怪的行为。在一天中的随机时间,某些窗体上的“确定”按钮(调用Form.Close方法)将不会导致该窗体关闭。我的意思是,用户单击按钮,在跟踪中显示Form.Close已被调用,但窗体不会关闭。
奇怪的是,窗体本身仍然响应,因此他们可以单击窗体上的任何按钮,按钮后面的代码将执行,但窗体只是不会关闭。
这种状态持续时间从几秒钟到几分钟不等。然后突然间,窗体开始释放并消失。真的很奇怪。
所以,总结一下,发生以下情况:
- Form.ShowDialog() -> 窗体显示 - 用户在窗体上工作并按下按钮等等 - 调用Form.Close() -> 用户单击了关闭按钮 - 在窗体等待关闭而仍然响应的一段时间内(在此期间,沮丧的用户多次点击关闭按钮但没有响应) - 突然间,窗体释放并从Form.ShowDialog返回一个对话框结果
需要注意的事项:
- 我没有使用任何类型的线程。 - 在某些时候,报告称PC上的explorer.exe进程已停止,这会影响窗体的行为吗?我们正在安排重建PC。 - 我的问题是,是否有人知道可能导致上述行为的情况?
我不是Forms方面的专家,但我的理解是,当您调用Form.Close时,窗体不会立即关闭,首先完成调用Close的当前方法,然后另一个进程触发窗体开始关闭和释放。
这可能与explorer.exe进程未运行有关吗?
非常感谢任何见解。***编辑
还要注意的是,我们无法复制该问题,它随机发生在客户端。
奇怪的是,窗体本身仍然响应,因此他们可以单击窗体上的任何按钮,按钮后面的代码将执行,但窗体只是不会关闭。
这种状态持续时间从几秒钟到几分钟不等。然后突然间,窗体开始释放并消失。真的很奇怪。
所以,总结一下,发生以下情况:
- Form.ShowDialog() -> 窗体显示 - 用户在窗体上工作并按下按钮等等 - 调用Form.Close() -> 用户单击了关闭按钮 - 在窗体等待关闭而仍然响应的一段时间内(在此期间,沮丧的用户多次点击关闭按钮但没有响应) - 突然间,窗体释放并从Form.ShowDialog返回一个对话框结果
需要注意的事项:
- 我没有使用任何类型的线程。 - 在某些时候,报告称PC上的explorer.exe进程已停止,这会影响窗体的行为吗?我们正在安排重建PC。 - 我的问题是,是否有人知道可能导致上述行为的情况?
我不是Forms方面的专家,但我的理解是,当您调用Form.Close时,窗体不会立即关闭,首先完成调用Close的当前方法,然后另一个进程触发窗体开始关闭和释放。
这可能与explorer.exe进程未运行有关吗?
非常感谢任何见解。***编辑
还要注意的是,我们无法复制该问题,它随机发生在客户端。