Здравствуйте, Yeti_Bigfoot, Вы писали:
Y_B>по после этой конструкции прерывание не срабатывает
Понял. Событие.
Y_B>А разве не надо переинициализировать его?.. тогда надо просто сделать ожидание пока все не Y_B>уйдут, и менять паритет?
Y_B>Но после такого подхода на осциллографе никто даже не уходит.
Не знаю, что точно вы подразумеваете под переинициализацией, но то, что смена четности безболезненно может делаться для открытого порта, уверен. Я про общий случай — что точно делает SerialPort, надо смотреть. Сеттер свойства SerialPort.Parity в конечном счете вызовет API SetCommState.
По поводу ожидания отправки данных. Не факт, что метод Write этого не ждет. Рефлектора под рукой нет, глянуть не могу. На асме х.з., на API я бы вызывал WaitCommEvent.
В любом случае, для того, чтоб узнать, что на самом деле происходит с портом, настоятельно рекомендую
portmon. Намного более информативная вещь, чем осциллограф. Интереса ради поставьте его и посмотрите, сколько лишних телодвижений делает SerialPort на каждый чих.
А так — слишком много неизвестных. Не видя протокола обмена с устройством, лога обращений к драйверу порта, не зная, что за конвертор вы используете, сложно сказать что-то более определенное.