Запись в строку одна строка за один раз с таймером в форме из serialport
привет
я хочу использовать таймер для чтения продолжения последовательного порта
и когда serialport ничего не получает не пишите ничего на строку
я попробовал этот код
этот код для чтения строки serialport
private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e) { Ricevo = ModemPort.ReadLine(); Ricevo = Ricevo.Replace("\r", string.Empty); if (Ricevo !="") { RicevoOk = Ricevo; } else { RicevoOk = ""; Ricevo = ""; } }
и этот код является таймером
if (Ricevo!=null) { listbox1.items.add(ricevo); ricevo=""; }
какой правильный код
спасибо
Что я уже пробовал:
private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e) { Ricevo = ModemPort.ReadLine(); Ricevo = Ricevo.Replace("\r", string.Empty); if (Ricevo !="") { RicevoOk = Ricevo; } else { RicevoOk = ""; Ricevo = ""; } }
Таймер
if (Ricevo!=null) { listbox1.items.add(ricevo); ricevo=""; }
[no name]
Либо используйте событие, либо таймер, нет необходимости в том и другом.
OriginalGriff
Ну, это не совсем так. Событие DataReceived всегда происходит в потоке, не относящемся к пользовательскому интерфейсу, поэтому он не может получить доступ к своему списку из него.
У меня сложилось впечатление, что он новичок в сериалах и понятия не имеет, как вызывать вещи. Но этот код довольно беден...Сейчас я на планшете, так что посмотрим, что я смогу сделать позже, когда буду на компьютере.