Запустите метод делегата с BeginInvoke - PullRequest
3 голосов
/ 26 октября 2010

В моем классе у меня есть статический метод

public static void DoWork(int param) ...

Я хочу запустить этот метод как:

Form.BeginInvoke(DoWork, param);

Возможна ли эта операция?

Я пытался с классом MethodInvoker ... но я не хочу определять тело метода встроенным. Есть ли общий делегат? Или вы знаете какой-либо другой способ вызова этого без определения объекта делегата (private delegate void DoWorkDelegate(int param))?

1 Ответ

9 голосов
/ 26 октября 2010

Вы должны иметь возможность использовать:

form.BeginInvoke((Action<int>)DoWork, param);

В качестве дополнительного примечания, MethodInvoker обладает преимуществом специальной обработки - он может вызывать это с помощью typed-invoke, а не отражением-invoke -и, возможно, что более важно, предлагает проверку аргументов заранее; лично Я бы просто использовал:

form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...