аналогичный вопрос здесь:
Блокировка потока последовательного порта при обработке данных, считанных из последовательный порт
Спасибо.
Код: Выделить всё
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);
}
*/
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... hread-safe
Мобильная версия