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