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 调试
- 调试构建
- 好久没有重启了
其他系统操作也耗时过长。
改变一切确实大大改善了这种情况。
我通常使用这段代码打开带有选定文件的 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 调试
- 调试构建
- 好久没有重启了
其他系统操作也耗时过长。 改变一切确实大大改善了这种情况。