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.
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);
}
*/
}
}
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]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; }
Ich habe eine Anwendung, die eine Antwort von 3 virtuellen seriellen Ports mit Serialport.Datarecebed fordert. Dies kann dazu führen, dass sich Fäden ansammeln. Jeder serielle Anschluss läuft in...
Wenn ich „Mit Gradle-Dateien synchronisieren“ ausführe, kann diese serielle Port-Bibliothek nicht gefunden werden:
implementation 'com.deemons.serialport:serialport:1.2.0'
Eine Alternative zur Protokollierung.Config.DictConfig (config)? Ich kann das Sonarqube -Qualitätstor aufgrund des folgenden Sonarqube -Fehlers nicht umgehen: logging.config.dictconfig (config):...