繁体   English   中英

System.IO.DriveInfo.GetDrives()因断开的网络驱动器而挂起

[英]System.IO.DriveInfo.GetDrives() hangs with disconnected network drives

我正在.NET 3.5中编写文件管理器。 在启动时,应用程序必须枚举可用的驱动器。 我正在使用DriveInfo.GetDrives来做到这一点。

不幸的是,我的用户感叹,当他们断开网络驱动器的连接时,该应用程序花费了大约30秒钟才能启动。

我发现当网络驱动器断开连接时,GetDrives()函数会挂起许多秒钟。 UI冻结。 这是在启动时发生的,每次我连接新驱动器时都会发生这种情况。

综上所述,即使网络驱动器断开连接,我也需要一种枚举立即返回的可用驱动器的方法。 谢谢你的帮助。

附加信息:

  1. 我用WMI做了一些测试,并且出现了同样的问题。 15秒钟左右后,WMI查询将返回。

  2. 我还考虑过将对DriveInfo的调用移到一个单独的线程。 这样可以解决不阻塞用户界面的问题。 但这意味着,当用户连接新驱动器时,驱动器图标只会在15秒后出现。 那不是理想的。

非常感谢您的帮助。

我担心无法避免这种阻塞。 这是由于Windows API中的网络/文件超时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM