Witam,
Mam taki oto kod tworzący wątek:
private void button1_Click(object sender, EventArgs e)
{
Thread watek = new Thread(new ThreadStart(operacja));
watek.Start();
}
private delegate void Deleg();
public void operacja()
{
portCOM.Open();
for (; ;)
{
Thread.Sleep(1000);
if (listBox1.InvokeRequired)
{
listBox1.Invoke((Deleg)delegate
{
listBox1.Items.Add(portCOM.ReadLine());
listBox1.SelectedIndex = listBox1.Items.Count - 1;
listBox1.SelectedIndex = -1;
});
}
}
}
i wszystko pięknie działa, dopóki przez port przychodzą jakieś dane. Kiedy dane nie są wysyłane, aplikacja się zawiesza, a kiedy znowu zacznę je wysyłać, to się "odwiesza". Jednak kiedy się "odwiesi", nie działa już tak płynnie, np. kiedy chcę przesunąć okno, to ma opóźnienia.
Może mi ktoś wytłumaczyć, dla czego tak się dzieje, i jak temu zapobiec? Z góry dziękuję za odpowiedź
Pozdrawiam