.NET 4.x Как прервать поток SerialPort? - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Разрабатываю программу для считывания информации по USB с внешних устройств. Программа уже нормально считывает информацию, но есть одно НО: когда я нажимаю кнопку "Стоп", то вроде бы информация перестает появлятся перед пользователем в текстовом поле. Но дело в том, выводится в текст оно-то перестаёт, а вот сам поток данных по-прежнему принимает информацию. Мне же надо остановить поток. Как это сделать?
Листинг программы
  1. SerialPort portData = new SerialPort("COM15", 57600);
  2. void portData_DataReceived(object sender, SerialDataReceivedEventArgs e)
  3. {
  4. try
  5. {
  6. if (buttonStart.Text == "Стоп")
  7. {
  8. //Все нормально, пошёл поток информации, она выводится в richTextBox1
  9. this.Invoke(new EventHandler(delegate { richTextBox1.Text += portData.ReadByte() + "\n"; }));
  10. }
  11. else
  12. {
  13. //А ВОТ ТУТ Я ХОЧУ СОВСЕМ ОСТАНОВИТЬ ПОТОК
  14. //но в данный момент здесь поток идет, просто выполняет пустой блок кода
  15. return;
  16. }
  17. }
  18. catch (Exception ex)
  19. {
  20. Console.WriteLine("Проблемы с DataRceived");
  21. Console.WriteLine(ex.ToString());
  22. }
  23. }

Решение задачи: «.NET 4.x Как прервать поток SerialPort?»

textual
Листинг программы
  1. portData.DataReceived += portData_DataReceived;

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы