System.IO.Ports.SerialPort.DataReceived Event

Represents the method that will handle the data received event of a System.IO.Ports.SerialPort object.


public event SerialDataReceivedEventHandler DataReceived


Serial received events can be caused by any of the items in the System.IO.Ports.SerialData enumeration. Because the operating system determines whether to raise this event or not, not all parity errors may be reported.

SerialPort.PinChanged, SerialPort.DataReceived, and SerialPort.ErrorReceived events may be called out of order, and there may be a slight delay between when the underlying stream reports the error and when the event handler is executed. Only one event handler can execute at a time.

The SerialPort.DataReceived event is not guaranteed to be raised for every byte received. Use the SerialPort.BytesToRead property to determine how much data is left to be read in the buffer.

The SerialPort.DataReceived event is raised on a secondary thread when data is received from the System.IO.Ports.SerialPort object. Because this event is raised on a secondary thread, and not the main thread, attempting to modify some elements in the main thread, such as UI elements, could raise a threading exception. If it is necessary to modify elements in the main System.Windows.Forms.Form or System.Windows.Forms.Control, post change requests back using System.Windows.Forms.Control.Invoke(Delegate), which will do the work on the proper thread.

For more information about handling events, see Handling and Raising Events.


Namespace: System.IO.Ports
Assembly: System (in System.dll)
Assembly Versions:,
Since: .NET 2.0