WinForms multithreading: É necessário criar um novo delegado sempre que é necessário chamar um método no thread da interface do usuário?

Eu quero invocar um método que manipula um controle no thread da interface do usuário. Meu código funciona e eu quero otimizar. Estou me referindo a issorecurso no MSDN.
De acordo com lá, devemos fazer

public delegate void myDelegate(int anInteger, string aString);
//...
Label1.Invoke(new myDelegate(myMethod), new Object[] {1, "This is the string"});

Isso introduziria um objeto delegado órfão (um vazamento de memória) a cada chamada?

Quando eu faria isso com uma instância estática do delegado, como abaixo, e usava essa instância em cada chamada para chamar:

private static _delegateInstance = new myDelegate(myMethod);
//...
Label1.Invoke(_delegateInstance , new Object[] {1, "This is the string"});

Isso seria seguro para threads? Seria verdade que isso tem um desempenho um pouco melhor, já que a instância delegada é criada apenas uma vez?

questionAnswers(5)

yourAnswerToTheQuestion