Genéricos em C # 2.0: como criar um objeto Action com zero parâmetros

Primeiro de tudo, estou usando VS2005 e C # 2.0.

Eu estou tentando definir uma propriedade Text do combobox de dentro do evento SelectedIndexChanged. De outrofio aqui no StackOverflow isso foi proposto feito da seguinte maneira:

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

Agora, em primeiro lugar, isso retorna um erro do compilador para mim. Eu acredito que é porque o objeto Action se comporta de maneira diferente nas duas especificações de linguagem. No C # 2.0, o objeto Action parece precisar do<T> estrutura em todas as declarações. Talvez eu esteja errado, mas gostaria de esclarecer isso.

O que funciona é o seguinte:

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

No entanto, parece-me muito estranho que eutem que defina o objeto Action com um parâmetro de tipo (especialmente porque não pretendo passar nenhum parâmetro)! De alguma forma, remover este parâmetro também tornaria o novo objeto vazio [] obsoleto, que é o que eu quero.

Alguém pode me ajudar a simplificar a chamada acima?

Finalmente, é garantido que o BeginInvoke terminará após o SelectedIndexChanged e, portanto, atualizará a propriedade Text do combobox com o texto correto?

Eu realmente aprecio aprender as respostas para essas perguntas.

questionAnswers(2)

yourAnswerToTheQuestion