Generics C # 2.0: Jak utworzyć obiekt Action o zerowych parametrach

Po pierwsze, używam VS2005 i C # 2.0.

Usiłuję ustawić właściwość Text combobox 'wewnątrz zdarzenia SelectedIndexChanged. Od drugiegowątek tutaj na StackOverflow zaproponowano to w następujący sposób:

BeginInvoke(new Action(() => someCombobox.Text = "x" )); 

Teraz najpierw zwraca mi błąd kompilatora. Uważam, że dzieje się tak, ponieważ obiekt Action zachowuje się inaczej w dwóch specyfikacjach językowych. W C # 2.0 obiekt Action wydaje się wymagać<T> struktura we wszystkich deklaracjach. Może się mylę, ale chciałbym to wyjaśnić.

To, co działa, jest następujące:

BeginInvoke(new Action<string>( delegate { someCombobox.Text = "x"; }), new object[] { "" });

Jednak wydaje mi się bardzo dziwne, że jamusieć zdefiniuj obiekt Action za pomocą parametru type (zwłaszcza, że ​​nie zamierzam przekazywać żadnych parametrów)! W jakiś sposób usunięcie tego parametru spowodowałoby również, że pusty nowy obiekt [] stałby się przestarzały, a tego właśnie chcę.

Czy ktoś może mi pomóc w uproszczeniu powyższego połączenia?

Na koniec, czy jest zagwarantowane, że BeginInvoke zakończy się po SelectedIndexChanged, a tym samym zaktualizuje właściwość Text combobox o poprawny tekst?

Naprawdę byłbym wdzięczny za poznanie odpowiedzi na te pytania.

questionAnswers(2)

yourAnswerToTheQuestion