我正在.NET 3.5 中编写文件管理器。在启动时,应用程序必须枚举可用的驱动器。我正在使用 DriveInfo.GetDrives 来做到这一点。
不幸的是,我的用户感叹,当他们断开网络驱动器时,应用程序需要大约 30 秒才能启动。
我发现当您的网络驱动器断开连接时,GetDrives() 函数会挂起数秒。用户界面冻结。这发生在启动时,每次我连接一个新驱动器时。
总而言之,我需要一种方法来枚举立即返回的可用驱动器,即使有断开的网络驱动器。谢谢你的帮助。
附加信息:
我用 WMI 做了一些测试,同样的问题出现了。WMI 查询在 15 秒左右后返回。
我还考虑过将对 DriveInfo 的调用移至单独的线程。这将解决不阻塞用户界面的问题;但这意味着,当用户连接新驱动器时,驱动器图标只会在 15 秒后出现。那并不理想。
非常感谢您的帮助。