簡體   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