SerialPort UnautoRizedAccessException

Иногда некоторые из моих интеграционных тестов не могут сдаваться вышеуказанным сообщением. Я использую код ниже, чтобы готовить порт.

            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 , чтобы новый нить / процесс мог получить его снова?

Спасибо,

Ричард

10
задан probably at the beach 8 September 2011 в 13:10
поделиться