Дарин Димитров не прав - его код использует существующий делегат Action вместо пользовательского, но он все равно создает объект делегата Action каждый раз (в отличие от вашего второго фрагмента). Итак, вы можете использовать следующий код:

у вызвать метод, который управляет элементом управления в потоке пользовательского интерфейса. Мой код работает, и я хочу оптимизировать. Я имею в виду эторесурс на MSDN.
Согласно там, мы должны сделать

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

Приведет ли это к появлению потерянного объекта-делегата (утечка памяти) при каждом вызове?

Когда я делаю это со статическим экземпляром делегата, как показано ниже, а затем использую этот экземпляр при каждом вызове для вызова:

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

Будет ли это потокобезопасным? Я был бы правдой, что это имеет немного лучшую производительность, так как экземпляр делегата создается только один раз?

Ответы на вопрос(5)

Ваш ответ на вопрос