SerialPort.DataReceived Ereignis- und Thread-sicherC#

Ein Treffpunkt für C#-Programmierer
Guest
 SerialPort.DataReceived Ereignis- und Thread-sicher

Post by Guest »

Wenn SerialPort_obj_DataReceived von einem Multi-Thread aufgerufen wird, sollte ich in diesem Fall eine Sperre verwenden oder nicht?
Ähnliche Frage hier:
Thread-Sperre des seriellen Ports während der Verarbeitung gelesener Daten serielle Schnittstelle
Vielen Dank.

Code: Select all

public partial class Ctwing : Form
{

object myLock = new object();

SerialPort serialPort_obj;

List dataReceived;

public Ctwing()
{
InitializeComponent();

dataReceived = new List();

serialPort_obj = new SerialPort();
serialPort_obj.DataReceived += SerialPort_obj_DataReceived;
}

private void SerialPort_obj_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
byte[] buff = new byte[sp.BytesToRead];
sp.Read(buff, 0, sp.BytesToRead);

dataReceived.AddRange(buff);

/*  should I to use a lock or not ?
lock(myLock){
dataReceived.AddRange(buff);
}
*/

}

}
nichts. Das ist nur eine Frage.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post