2011-01-13 13 views

Respuesta

41

No, no quiere hacer el trabajo en un fondo hilo - es hacer un trabajo sobre la interfaz de usuario hilo. Por lo tanto, normalmente es llamado desde un hilo de fondo, con el fin de manipular la interfaz de usuario, que solo se puede hacer en el hilo de la interfaz de usuario.

El cuerpo de la expresión lambda es el código que desea ejecutar en el hilo de interfaz de usuario.

+1

Jon, la popularidad de sus publicaciones en SO es excepcional. Mi sombrero está fuera de tu alcance :) –

+8

También es importante mencionar que BeginInvoke se puede usar desde el propio subproceso de la interfaz de usuario a una acción de seguimiento en el subproceso de la interfaz de usuario después de que la cola de acción de la interfaz de usuario esté vacía. Esencialmente posponer el trabajo hasta que el hilo de la interfaz de usuario ya no haga nada. – JustinAngel

+0

@JonSkeet: cómo puedo ejecutar un código en una cadena de fondo, ya que este código bloquea mi barra de progreso para que no se muestre en la interfaz de usuario – Rohaan

6

Cuando, se produce un acceso de excepción-hilo transversal no válida código que actualiza la interfaz de usuario se ejecuta a partir de un hilo que no sea el hilo de interfaz de usuario.

El despachador le permite pasar algún código más al hilo de interfaz de usuario desde otro hilo.

El proyecto que puse en este post lo demuestra, entre otros conceptos.

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7

2

tendrá que utilizar Deployment.Current. Dispatcher en una aplicación SilverLight cuando se encuentra trabajando en un hilo de trabajo no UI (dentro de un contexto que no hereda de DependencyObject) y necesita actualizar la interfaz de usuario.

Cuestiones relacionadas