C# Open Windows 资源管理器很慢

C# Open Windows explorer is slow

我通常使用这段代码打开带有选定文件的 Window:

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

关键是它会冻结 UI 大约 5 秒 + 显示 window 还需要 1-2 秒。 这种行为很不舒服。

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

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

此替代方案不会冻结 UI,但仍需要最多 7 秒才能向用户显示 window。 当显示 window 时,用户可能已经开始做其他事情,或者会尝试再次执行该操作,因为几秒钟后没有任何反应。

如果我作为最终用户手动使用 windows 运行 提示符 (Win+R) 完全相同 explorer.exe & path/arguments,资源管理器window 打开不到 2 秒,所以系统本身并没有那么慢。从 cmd 开始大约需要 4 秒。

是否有任何替代方法可以更快地显示浏览器 window 选择文件(或者只是打开所需的目录路径,当您将其作为参数提供时)?

我知道我给出的时间不准确,希望你明白。

据我所知,它是以下各项的组合:

  • VS 调试
  • 调试构建
  • 好久没有重启了

其他系统操作也耗时过长。 改变一切确实大大改善了这种情况。