Cześć, mam sobie wątek, który w pewnym momencie wywołuje zdarzenie. Zdarzenie ma być obsłużone przez główną formę.
Wątek:
//deklaracje
public delegate void DelMyEvent(object Sender, string sname);
public event DelMyEvent MyEvent;
//a w metodzie wątku w pewnym momencie:
if (MyEvent != null) MyEvent(this, sname);
Obsługa jest na formie głównej:
rThread = new MyThread();
rThread.MyEvent +=new MyThread.DelMyEvent(EventFired);
private void EventFired(object sender, string sname)
{
listBox.Items.Add(sname);
}
No i przy listBox.Items.Add dostaję błąd: InvalidOperationException z komunikatem: "Nieprawidłowa operacja między wątkami: do formantu 'listBox' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony."
Szukam już z godzinę, ale za bardzo nie wiem, co mam zrobić, żeby było dobrze. Wszędzie tylko piszą o Invoke i o wywołaniu listBox z wątku. A ja chcę z wątku wywołać zdarzenie tylko. Jak to zrobić, żeby było dobrze?