Передача BeginInvoke в качестве параметра - PullRequest
1 голос
/ 02 декабря 2010

Предположим, я хочу иметь метод, который передает BeginInvoke метод объекта в качестве параметра. Как бы я это сделал? Звонок выглядит так:

MyRandomMethod(SomeControl.BeginInvoke);

Каким будет определение метода для MyRandomMethod?

Часть проблемы в том, что BeginInvoke имеет перегрузки, поэтому компилятор запутывается в том, какой из них я пытаюсь передать как параметр. Может быть, мне нужно найти способ сказать, какую версию BeginInvoke я имею в виду? (Хотя я думаю, что это будет зависеть от типа параметра)

1 Ответ

3 голосов
/ 02 декабря 2010

MyRandomMethod должен иметь параметр с делегатом, который соответствует одной из перегрузок для SomeControl.BeginInvoke. Например:

public void MyRandomMethod(Func<Delegate, IAsyncResult> foo)

или

public void MyRandomMethod(Func<Delegate, object[], IAsyncResult> foo)

(Но, пожалуйста, не перегружайте MyRandomMethod саму обеими этими сигнатурами, иначе вы просто попросите путаницу.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...