saveFileDialog长时间等待”;好的";确认书

本文关键字:quot 确认书 好的 saveFileDialog 等待 长时间 | 更新日期: 2023-09-27 18:22:29

我在Visual Studio 2008中使用C#进行编写(如果有区别的话),我有以下代码片段:

if(saveFileDialog1.ShowDialog() == DialogResult.OK) 
{ 
    //Write Stuff to File Here
}

有一段时间,我认为编写文件的代码需要很长时间,但在调试时,似乎只需要在"if"语句和"if"中第一个代码的第一个括号之间走一步就需要很长的时间(5到10秒)。

我做错了什么吗?在UI中创建saveFileDialog对象与动态创建(通过代码)有什么区别吗?如果没有"其他"的说法,会有什么不同吗?

任何想法或想法都将不胜感激!

saveFileDialog长时间等待”;好的";确认书

这并不罕见,在许多机器上,当您使用该对话框时,会将大量DLL加载到您的进程中。您可以使用Project+Properties的"调试"选项卡,勾选"启用非托管代码调试"复选框来加载它们。"输出"窗口显示了每个DLL的踪迹,这些DLL通过蠕虫进入程序。

这些是shell扩展,是Explorer的自定义项。您使用的对话框是一个shell对话框,您肯定认识到它与常规Explorer视图的相似性。图标和上下文菜单的行为是一样的。在开发人员的机器上安装大量的shell扩展是很常见的,比用户的机器更常见。它们有很多,提供了诸如将您喜欢使用的任何工具与Explorer本身集成之类的便利。

调试这个问题并不是那么容易,你不会有这些扩展的实际源代码。您可能会从"输出"窗口中的跟踪中得到有关疑难解答者的提示。如果在一个特定的DLL之后有一个长时间的暂停,那么这个DLL很可能是问题的根源。不过没有什么真正坚实的东西。

更好的方法是使用SysInternal的AutoRuns实用程序。它会准确地显示安装了哪些shell扩展,并允许您通过单击复选框来禁用它们。开始禁用任何没有微软版权的东西和你可以不用的东西。需要注销+登录才能使更改生效。