.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;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы