C#打开Windows资源管理器的速度很慢

时间:2020-07-17 10:02:18

标签: c# windows performance explorer

我通常使用以下代码来打开带有选定文件的窗口:

public Process OpenWindowExplorerSelectingFile(string filePath)
{
  return Process.Start("explorer.exe", $"/select,\"{filePath}\"")
}

重点是它将UI冻结了大约5秒钟,并且还需要1-2秒钟才能显示该窗口。 这种行为非常不舒服。

我想到了使它异步工作以避免UI阻塞的想法:

public static Task<Process> OpenWindowExplorerSelectingFileAsync(string filePath)
{
    return Task.Run(() => OpenWindowExplorerSelectingFile(filePath));
}

此替代方法不会冻结UI,但仍需要大约7秒钟才能向用户显示窗口。 当显示该窗口时,用户可能已经开始做其他事情,或者由于几秒钟内什么都没发生,所以试图再次执行该操作。

如果作为最终用户,我会使用Windows Run提示符(Win + R)并使用相同的explorer.exe和路径/参数,则Explorer窗口会在不到2秒的时间内打开,因此系统不会本身就慢了。从cmd大约需要4秒钟。

是否有其他方法可以更快地显示一个资源管理器窗口来选择文件(或者只是在将其作为参数时打开所需的目录路径)?

我知道我给出的时间不准确,希望您能理解。

1 个答案:

答案 0 :(得分:0)

对于我可以收集到的信息,它是以下各项的组合:

  • VS调试
  • 调试版本
  • 长时间不重启。

其他系统操作也花费了太长时间。 改变所有这些都可以大大改善这种情况。

相关问题