2011-08-27 10 views
5

Estoy tratando de llamar a un método que se inició en un subproceso en segundo plano en el hilo de interfaz de usuario llamando BeginInvoke y pasando un delegado de la siguiente manera:Ayuda con Dispatcher.BeginInvoke

Dispatcher.BeginInvoke(Function() UpdateApplicationDataUI()) 

llamar a este método:

Private Sub UpdateApplicationDataUI() 
... 
End Sub 

Sin embargo, aparece un error en la llamada a BeginInvoke (la parte UpdateApplicationDataUI del delegado indica "La expresión no produce un valor"). Estoy seguro de que me estoy perdiendo algo simple ... alguna idea?

hizo más investigación y respondió a mi propia pregunta:

Me.Dispatcher.BeginInvoke(Function() New Action(AddressOf UpdateApplicationDataUI)) 
+0

puede hacerlo más fácil en VB.net 4 ver mi respuesta – Carsten

+1

Simplemente elimine la función() por completo. –

Respuesta

13

Creo que la sintaxis en VB.net para esto es

Dispatcher.BeginInvoke(Sub() UpdateApplicationDataUi())