Иногда появляется сообщение «System.IO.IOException: операция ввода-вывода была прервана из-за выхода из потока или запроса приложения». когда я пишу в SerialPort. Изучив проблему, я увидел, что сообщение было отправлено дважды, хотя я ожидаю завершения отправки и ответа
public List<string> Write(CommandBase command, TimeSpan readTimeout)
{
lock (_sync)
{
var data = command.Build();
_responses.Clear();
_port.Write(data, 0, data.Length);
// here I waiting for response (_port.DataReceived += PortOnDataReceived;)
if (!_eventHandleResetEvent.WaitOne(readTimeout))
{
throw new ReadResponseTimeoutException(command, readTimeout);
}
_port.DiscardInBuffer();
_port.DiscardOutBuffer();
return new List<string>(_responses);
}
}
Как мне решить эту проблему?