Witam wszystkich,
trochę poczytałem ale nadal nie mogę rozwiązać mojego problemu :/
Jest to moja pierwsza aplikacja wielowątkowa.
Mianowicie
testowałem to pod guzikiem button i wszystko OK, problem pojawia się gdy włożyłem całość do backgroundworker.
konkretnie chodzi o tą jedną linię:
rtb= dynamic_cast<RichTextBox^>(tabControl1->TabPages[i]->Controls["RTB"+tabControl1->TabPages[i]]);
komunikat:
"Nieprawidłowa operacja miedzy wątkami: do formantu "RTBTabPage:{ewr}" uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony."
Z forum wyczytałem o użyciu invoke ale tu coś robię już źle:/
Opcja 1.
W programie głównym:
delegate void watekd(int xx);
void watekx (int xx)
{
Invoke(gcnew watekd(&Client::Form1::watekx), xx);
tabControl1->TabPages[xx]->Controls["RTB"+tabControl1->TabPages[xx]];
}
W wątku nawet nie zabrałem się za wywoływanie delegata jeżeli tu "klapa":/
Opcja 2.
W wątku:
Invoke(rtb= dynamic_cast<RichTextBox^>(tabControl1->TabPages[i]->Controls["RTB"+tabControl1->TabPages[i]]));