Я пишу файловый менеджер в .NET 3.5. При запуске приложение должно перечислить доступные диски. Для этого я использую DriveInfo.GetDrives.
К сожалению, мои пользователи сетовали на то, что когда они отключали сетевые диски, запуск приложения занимал около 30 секунд.
Я обнаружил, что функция GetDrives() зависает на много секунд при отключенном сетевом диске. И интерфейс зависает. Это происходит при запуске, и каждый раз, когда я подключаю новый диск.
Подводя итог, мне нужен способ перечисления доступных дисков, который возвращается немедленно, даже если есть отключенные сетевые диски. Спасибо за любую помощь.
Дополнительная информация:
Я сделал тест с WMI, и возникает та же проблема. Запрос WMI возвращается примерно через 15 секунд.
Я также рассматривал возможность переноса вызова DriveInfo в отдельный поток. Это решило бы проблему не блокирования пользовательского интерфейса; но это будет означать, что когда пользователь подключает новый диск, значок диска появляется только через 15 секунд. Это не идеально.
Большое спасибо за любую помощь.