gpt4 book ai didi

c# - saveFileDialog 长时间等待 "Okay"确认

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:32 34 4
gpt4 key购买 nike

我正在使用 C# 在 Visual Studio 2008 中编写代码(如果这有所不同)并且我有以下代码片段:

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

有一段时间我认为我写文件的代码要花很长时间,但是在调试时似乎花很长时间(5 到 10 秒)只是在“if”语句和第一个代码的第一个括号之间“如果”。

我做错了什么吗?在 UI 中创建 saveFileDialog 对象与动态创建它(通过代码)之间有什么区别吗?如果没有“else”语句,会有什么不同吗?

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

最佳答案

这并不罕见,在许多机器上,当您使用该对话框时,大量 DLL 会加载到您的进程中。您可以通过使用“项目+属性”、“调试”选项卡、勾选“启用非托管代码调试”复选框来查看它们的加载情况。 Output 窗口显示了每个进入您的程序的 DLL 的踪迹。

这些是 shell 扩展,Explorer 的定制。您使用的对话框是一个 shell 对话框,您肯定认识到它与常规资源管理器 View 的相似性。图标和上下文菜单之类的东西表现相同。在开发人员的机器上安装大量的 shell 扩展是很常见的,比用户机器更常见。有很多这样的工具,它们提供了很多便利,例如将您喜欢的任何工具与 Explorer 本身集成在一起。

调试问题并不那么容易,您不会拥有这些扩展的实际源代码。您可能会从“输出”窗口中的跟踪中得到有关麻烦制造者的提示。如果在一个特定的 DLL 之后有长时间的停顿,那么这个 DLL 很可能是问题的根源。虽然没有什么真正可靠的。

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

关于c# - saveFileDialog 长时间等待 "Okay"确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153346/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com