SerialPort.DataReceived Событие и потокобезопасностьC#

Место общения программистов C#
Ответить
Anonymous
 SerialPort.DataReceived Событие и потокобезопасность

Сообщение Anonymous »

Если SerialPort_obj_DataReceived вызывается многопоточным вызовом, в этом случае следует ли использовать блокировку или нет?
аналогичный вопрос здесь:
Блокировка потока последовательного порта при обработке данных, считанных из последовательный порт
Спасибо.

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»