[c#] robienie czegoś w innym wątku

0

Witam,
Korzystam z VS Express. W backgroundWorker w funkcji DoWork robie sobie coś, i chce coś zrobić w jakiejś innej kontrolce.
Korzystałem do tej pory z metody Invoke, ale jest ona niewygodna(muszę zadeklarować delegata).
Kolejnym problemem jest to, że działa to tylko do funkcji danej kontrolki. A ja bym chciał zmienić np właściwość Text.
I nie mam pomysłu jak to zrobić.
Pomożecie?
Z góry dzięki :)

1

Kolejnym problemem jest to, że działa to tylko do funkcji danej kontrolki. A ja bym chciał zmienić np właściwość Text.
I nie mam pomysłu jak to zrobić.
Stwórz w klasie okna metodę zmieniającą ten Text i ją wywołuj.

0

Działa pięknie, dzięki!

Szkoda tylko, że do każdej takiej funkcji musze sobie tworzyć delegata
Czy istnieje jakiś sposób, by jeden delegat obslugiwal wiele metod? Oczywiście mam na myśli różne kopie tego delegata.
Próbowalem przez
public delegate object nazwa(params object[] o)
ale niestety jest problem przy return type :(

1

Do Invoke nie musisz tworzyć osobnego delegata (myślę o tworzeniu nowego typu). Wystarczy, że zrobisz np. tak:

kontrolka.Invoke(new Action(delegate(){ kontrolka.Text = ""; }))

1 użytkowników online, w tym zalogowanych: 0, gości: 1