为什么在特定机器上使用 OpenFileDialog 会导致 WinForms 应用程序冻结?

5
我有一个WinForms应用程序部署在同一办公室的多台计算机上。直到本周一,办公室所有用户都可以使用该应用程序,并使用OpenFileDialog选择要导入的文件。一台机器更新了其他应用程序,现在我们的应用程序尝试显示OpenFileDialog时会冻结。它可以正常显示OpenFolderDialog;但我未能尝试SaveFileDialog。请再次注意,它在上周工作正常,我们的应用程序没有更新,但是本周它在一台机器上发生冻结,而在办公室的所有其他机器上都可以正常工作。
所涉及的机器安装有另一个.NET应用程序,并且我验证了OpenFileDialog在另一个应用程序中可以正常打开。
为什么OpenFileDialog会在一台机器上冻结?有什么解决方法吗?我们可以尝试重新安装,但我认为最好先调查原因以防止再次发生。

3
你尝试过等待它解冻吗?可能是正在尝试读取一个不再可用的网络资源。 - Jacob Krall
2
可能重复的问题:C#,WPF- OpenFileDialog不出现 - Hans Passant
@Jacob:我们没有等待太久应用程序才解冻。如果它以前使用的是 RestoreDirectory 属性并且尝试读取不存在的网络资源,那么会出现这种情况吗?它是否系统范围内,使得使用 OpenFileDialog 的其他 .NET 应用程序也会遇到相同的问题? - flipdoubt
2
你看过我在链接的重复问题中的回答吗?它本应让人明显地意识到这不是你犯的错误。 - Hans Passant
@flipdoubt:是的,如果它试图读取不存在的网络资源,它可能会挂起一段时间。但它应该最终超时。它何时超时是另一个问题。 - Jim Mischel
显示剩余5条评论
1个回答

8

这台机器可能以前连接到了一个不再可用的网络资源。OpenFileDialog 可能正在等待该网络资源响应,这会导致需要几分钟的超时时间。


我可以更改这个超时时间吗? - Glebka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接