Witam
Nie ma takiej potrzeby, żeby tworzyć specjalny dodatkowy wątek do odbioru ... tym bardziej, że nie spełnia swojego zadania.
Klasa SerialPort posiada zdarzenie DataReceived do odbioru danych:
- odbiór jest asynchroniczy i wywoływany tylko wtedy jeśli coś znajdzie się w buforze odbiorczym
- nie ma pullingu więc nie ma obciążenia procesora.
Najwygodniej jest to wyklikać
("położyć" SerialPort i wyklikać zdarzenie), ale jeśli trzeba to napisać:
Definicja zdarzenia:
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
}
Oraz podpięcie tego zdarzenia do klasy:
this.serialPort.DataReceived += new SerialDataReceivedEventHandler(this.serialPort_DataReceived);