.NET 4.x Как прервать поток SerialPort? - C#
Формулировка задачи:
Здравствуйте. Разрабатываю программу для считывания информации по USB с внешних устройств.
Программа уже нормально считывает информацию, но есть одно НО: когда я нажимаю кнопку "Стоп", то вроде бы информация перестает появлятся перед пользователем в текстовом поле. Но дело в том, выводится в текст оно-то перестаёт, а вот сам поток данных по-прежнему принимает информацию.
Мне же надо остановить поток. Как это сделать?
SerialPort portData = new SerialPort("COM15", 57600);
void portData_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
if (buttonStart.Text == "Стоп")
{
//Все нормально, пошёл поток информации, она выводится в richTextBox1
this.Invoke(new EventHandler(delegate { richTextBox1.Text += portData.ReadByte() + "\n"; }));
}
else
{
//А ВОТ ТУТ Я ХОЧУ СОВСЕМ ОСТАНОВИТЬ ПОТОК
//но в данный момент здесь поток идет, просто выполняет пустой блок кода
return;
}
}
catch (Exception ex)
{
Console.WriteLine("Проблемы с DataRceived");
Console.WriteLine(ex.ToString());
}
}Решение задачи: «.NET 4.x Как прервать поток SerialPort?»
textual
Листинг программы
portData.DataReceived += portData_DataReceived;