Compartir a través de


Ejemplo Single-Threaded Application with Long-Running Calculation

Actualización: noviembre 2007

Este ejemplo muestra cómo lograr que la interfaz de usuario siga respondiendo en una aplicación de subproceso que realiza una operación larga.

Este ejemplo tiene un objeto Button que empieza a calcular números primos cuando se hace clic. Teóricamente, este cálculo es interminable; por tanto, si el controlador de eventos entró en un bucle y empezó a calcular números primos, la llamada nunca se devolvería y se invalidaría el subproceso de la interfaz de usuario.

Para evitarlo, el ejemplo pone en cola un trabajo asincrónico en el objeto Dispatcher del subproceso interfaz de usuario llamando a BeginInvoke. El trabajo que se inserta en la cola procesa un número cuando el subproceso de la interfaz de usuario está en el estado SystemIdle e inserta otra llamada en el distribuidor para procesar el siguiente número la próxima vez que esté inactivo el subproceso de la interfaz de usuario.

De esta forma, se asegura de que el subproceso de la interfaz de usuario siempre tendrá prioridad sobre el cálculo del número siguiente e impide que no responda la interfaz de usuario.

Vea el tema Modelo de subprocesos para obtener una descripción de este ejemplo.

En este ejemplo, se muestra una característica específica de Windows Presentation Foundation y, por consiguiente, no se siguen los procedimientos recomendados para el desarrollo de aplicaciones. Para obtener la información completa sobre los procedimientos recomendados para el desarrollo de aplicaciones de Windows Presentation Foundation (WPF) y Microsoft .NET Framework, vea la siguiente información según convenga:

Accesibilidad: Procedimientos de accesibilidad recomendados

Localización: Información general sobre la localización y globalización de WPF

Rendimiento: Optimizar WPF: Rendimiento de aplicaciones

Seguridad: Seguridad de Windows Presentation Foundation

Download sample

Generar el ejemplo

  • Instale el Kit de desarrollo de software de Windows (SDK) y abra la ventana de comandos del entorno de compilación. En el menú Inicio, elija Todos los programas, Microsoft Windows SDK y haga clic en Shell CMD.

  • Descargue el ejemplo, que encontrará en la documentación del kit de desarrollo de software (SDK), al disco duro.

  • Para generar el ejemplo en la ventana de comados del entorno de compilación, vaya al directorio de origen del ejemplo. En el símbolo del sistema, escriba MSBUILD.

  • Para generar el ejemplo en Microsoft Visual Studio, cargue la solución de ejemplo o el archivo del proyecto y presione CTRL+MAYÚS+B.

Ejecutar el ejemplo

  • Para ejecutar el ejemplo compilado en la ventana de comandos del entorno de compilación, ejecute el archivo .exe en la carpeta Bin\Debug o Bin\Release, que se encuentra bajo la carpeta de código fuente de ejemplo.

  • Para ejecutar el ejemplo compilado con depuración en Visual Studio, presione F5.

Vea también

Tareas

Ejemplo Weather Service Simulation via Dispatcher

Ejemplo Multithreading Web Browser

Ejemplo Disable Command Source via System Timer

Conceptos

Modelo de subprocesos