Иногда некоторые из моих интеграционных тестов не могут сдаваться вышеуказанным сообщением. Я использую код ниже, чтобы готовить порт.
for(int i = 0; i < 5; i++)
{
try
{
port.Open();
if (port.IsOpen)
break;
}
catch (Exception e)
{
try
{
port.Close();
}
catch (Exception)
{}
Thread.Sleep(300);
}
}
Мое предположение в том, что потому, что он не может быть текущим потоком блокировки порта (потому что он попытается закрыть его), он должен быть другой нить или процесс, который умер, не умерли без уборки (один из других тестов - Ничто другое не доступа к этому порту). Есть ли способ сбросить состояние SERIALIALPORT
, чтобы новый нить / процесс мог получить его снова?
Спасибо,
Ричард