.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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д