Proste założenie: wyświetlać przychodzące przez UART z mikrokontrolera dane i wyświetlać na richTextBox, aby zachować "historię" danych.
string sdata;
string temp;
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
sdata = serialPort1.ReadExisting();
temp = rtbDisplay.Text;
rtbDisplay.Text = sdata + "\n" + temp;
}
catch(Exception ex) { MessageBox.Show(ex.Message,"Exception",MessageBoxButtons.OK,MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1); }
}
Po uruchomieniu na dzień dobry error: Nieprawidłowa operacja między wątkami: do formantu 'rtbDisplay' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.
Udało mi się to obejść timerem sczytując dane ze zmiennej sdata co 500ms, ale nie na tym to polega.
Nie mam doświadczenia z wielowątkowością w C#... nie wiem przyznanie dostępu dla innych wątków?