Я столкнулся с проблемой, что два диска, подключенные почти одновременно, не могут быть обработаны. Я на самом деле исправил старый способ получения модели привода, но у меня такое ощущение, что я собираюсь столкнуться с той же проблемой.
Похоже, что если выполняется задача, такая как та, которую я проверяю, является ли накопитель определенным устройством, и, к сожалению, требуется немного времени, если устройство только что было подключено. Что дальнейшие сообщения WM_DEVICECHANGE, выданные во время его выполнения, вообще не принимаются.
Даже если мне нужно сохранить сообщение и поставить его в очередь для обработки, я не уверен, как бы я мог разрешить приложению делать это во время выполнения другой задачи. Мое первое предположение - мне придется работать с потоками?
У меня есть обработчик WM_DEVICECHANGE, который прослушивает прибытие устройства и удаление устройства. Он получает и возвращает букву диска и передает ее в код, который добавляет диск в поле со списком, затем проверяет, является ли он psp или просто съемным диском, а затем выводит диалоговое окно с сообщением пользователю, хотят ли они выбрать этот диск или нет.
У меня также есть ощущение, что диалог сообщений будет препятствовать обработке сообщений WM_DEVICECHANGE, но пока я не напишу новые методы, я не могу проверить это.
В любом случае, я подумал, что, может быть, кто-то может понять, что я имею в виду, и указать мне правильное направление. Я беспокоюсь, беспокоюсь, что попытка использовать потоки вызовет их собственную небольшую группу проблем?