Я знаю, что следует избегать прерывания потока, но в этом случае DriveInfo.IsReady в потоке пользовательского интерфейса никогда не возвращается и программа зависает.
Я обнаружил несколько устройств чтения SD-карт, которые вызывают эту проблему (каждая картаСлот, в котором нет карты, остановит программу, проверяющую свойство isReady (или любое другое).
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
if (drive.IsReady)
DriveCollection.Add(drive);
}
Существует ли способ дать каждому диску секунду для ответа и полностью убить поток, покаподдерживает ли пользовательский интерфейс постоянно реагирующий?