У меня есть последовательный порт, получающий данные от встроенного устройства асинхронно. У пользователя есть возможность прекратить соединение с портом в любое время, но это означает, что я получаю исключение, если пользователь отключает промежуточную передачу (иногда программа останавливается только на myPort.Close()
). Есть ли способ добавить команду «Подождать до пустого»? Что-то вроде этого ниже?Как дождаться завершения последовательного порта до закрытия
private void tsDisconnect_Click(object sender, EventArgs e)
{
try
{
while(myPort.BytesToRead > 0)
{//wait here}
}
myPort.Close();
}
Какое исключение вы можете получить? Если пользователь отменяет операцию, вы всегда можете столкнуться с некоторыми ошибками, потому что вы не можете сказать, что данные пользователя полностью переданы или нет. – dwonisch