dispatcher.invoke c#
No se puede convertir la expresión lambda para escribir ''System.Delegate'' (3)
A menos que me haya perdido algo, todo lo que nos ha dicho es que esta no es una aplicación de WPF . No creo que el Dispatcher sea la clase correcta para usar.
Si esta es una aplicación de WinForm, se puede acceder a su subproceso de interfaz de usuario a través del WindowsFormsSynchronizationContext
Ninguno de estos funciona:
_uiDispatcher.Invoke(() => { });
_uiDispatcher.Invoke(delegate() { });
Todo lo que quiero hacer es invocar un método en línea en mi hilo principal de IU. Así que llamé esto al hilo principal:
_uiDispatcher = Dispatcher.CurrentDispatcher;
Y ahora quiero ejecutar algún código en ese hilo desde otro hilo. ¿Cómo lo hago? ¿Estoy usando la sintaxis incorrecta?
Tenga en cuenta que esta no es una aplicación WPF; Hice referencia a WindowsBase para poder acceder a la clase Dispatcher .
El problema es que no proporciona el tipo exacto de delegado que desea invocar. Dispatcher.Invoke solo toma un Delegate . ¿Es una Action<T> ? Si es así, ¿qué es T ? ¿Es un MethodInvoker ? Action ? ¿Qué?
Si su delegado no toma argumentos y no devuelve nada, puede usar Action o MethodInvoker . Prueba esto:
_uiDispatcher.Invoke(new Action(() => { }));
this.Dispatcher.Invoke((Action)(() => { textBox1.Text = "Test 123"; }));