Wie man richtig mit SerialPort.DiscardInBuffer?

Ich habe eine Anwendung geschrieben, die liest von einem seriellen Gerät zu einem sehr schnellen rate. Der serielle port-Objekt jedoch nicht die Feuer der DataReceieved Veranstaltung nach ca 20 min Dauerbetrieb. Trennen und erneutes verbinden des seriellen programmgesteuert ermöglicht die Veranstaltung wieder zu arbeiten, aber nur für weitere 20 min.

Versuchte ich mit DiscardInBuffer nach jedem DataReceived Ereignis und dieses hat offenbar das problem gelöst. Aber die Methode verbraucht viel cpu-Zeit und vermindert die performance der Anwendung. MSDN erwähnt, dass die Methode "Verwirft die Daten von der seriellen Treibers erhalten buffer.", aber nicht schlagen, wenn es verwendet werden soll.

Wann und wie sollte DiscardInBuffer verwendet werden, und verwende ich es in den richtigen Kontext für mein spezielles problem ?

Edit:

Nach der Umsetzung der ErrorReceived Ereignis, die Ereignis-Daten angegeben, die die zurückgegebenen event-Typ war ein "RXOver".

Hören Sie die ErrorReceived Veranstaltung? msdn.microsoft.com/en-us/library/...
Nein, ich bin nicht. Was sollte ich Ausschau halten in den ErrorReceived Veranstaltung ?

InformationsquelleAutor steeppham | 2010-10-25

Schreibe einen Kommentar