Адрес синтаксиса без делегата - PullRequest
0 голосов
/ 08 июля 2011

Я использую этот делегат для вызова моего метода:

Private Delegate Sub NoArgDelegate()



Dim dl As New NoArgDelegate(AddressOf MyLoad)
Me.Dispatcher.BeginInvoke(dl, Windows.Threading.DispatcherPriority.ContextIdle)


Private Sub MyLoad()
End Sub

Есть ли способ сделать это без моего NoArgDelegate?

Спасибо

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Так как вы используете WPF, должен быть доступен делегат Action. Так что вам не нужно определять свой собственный делегат.

0 голосов
/ 08 июля 2011

Ну, вы могли бы использовать MethodInvoker или Action вместо создания своего собственного делегата :) Однако я предполагаю, что вы действительно спрашиваете о необходимостиявно указывайте тип делегата при вызове BeginInvoke.

Проблема в том, что Dispatcher.BeingInvoke принимает любой делегат, поэтому компилятор не будет знать, во что преобразовать AddressOf MyLoad.

Вы можете добавить свой собственный метод расширения, который имеет параметр Action - я полагаю, что это позволит вам вызывать его без явного указания делегата в вызывающем коде.

...