Compartir a través de


Procedimientos recomendados para usar el grupo de subprocesos

En este tema se describen los procedimientos recomendados para trabajar con el grupo de subprocesos.

Qué hacer

  • Use el grupo de subprocesos para realizar trabajos paralelos en la aplicación.

  • Use elementos de trabajo para realizar tareas extendidas sin bloquear el subproceso de la interfaz de usuario.

  • Cree elementos de trabajo que sean de corta duración e independientes. Los elementos de trabajo se ejecutan de forma asincrónica y se pueden enviar al grupo en cualquier orden de la cola.

  • Envíe actualizaciones al subproceso de interfaz de usuario con Windows.UI.Core.CoreDispatcher.

  • Use ThreadPoolTimer.CreateTimer en lugar de la función Sleep .

  • Use el grupo de subprocesos en lugar de crear su propio sistema de administración de subprocesos. El grupo de subprocesos se ejecuta en el nivel de sistema operativo con funcionalidad avanzada y está optimizado para escalar dinámicamente según los recursos del dispositivo y la actividad dentro del proceso y en todo el sistema.

  • En C++, asegúrese de que los delegados de elemento de trabajo usan el modelo de subprocesos ágil (los delegados de C++ son ágiles de forma predeterminada).

  • Use elementos de trabajo asignados previamente cuando no pueda tolerar un error de asignación de recursos en el momento del uso.

No

  • No cree temporizadores periódicos con un valor de período de <1 milisegundos (incluido 0). Esto hará que el elemento de trabajo se comporte como un temporizador de un solo disparo.

  • No envíe elementos de trabajo periódicos que tarden más tiempo en completarse que la cantidad de tiempo que especificó en el parámetro period .

  • No intente enviar actualizaciones de la interfaz de usuario (que no sean notificaciones y notificaciones del sistema) desde un elemento de trabajo enviado desde una tarea en segundo plano. En su lugar, use controladores de progreso y finalización de tareas en segundo plano; por ejemplo, IBackgroundTaskInstance.Progress.

  • Cuando se usan controladores de elementos de trabajo que usan la palabra clave async , no supongamos que todo el código del controlador se ha ejecutado cuando se ha establecido el estado completo en el elemento de trabajo. El elemento de trabajo del grupo de subprocesos se puede establecer en el estado completo antes de que se haya ejecutado todo el código del controlador. El código que sigue a una palabra clave await dentro del controlador puede ejecutarse después de que el elemento de trabajo se haya establecido en el estado completo.

  • No intente ejecutar un elemento de trabajo asignado previamente más de una vez sin reinicializarlo. Crear un elemento de trabajo periódico