¿Hay una alternativa a BackgroundTask en Windows Phone 8.1?
windows-phone windows-phone-8.1 (1)
Tengo una aplicación para Windows Phone 8.0 que transfiero a 8.1. En 8.0, dependía mucho de BackgroundWorker
para ejecutar tareas que no quería consumir el hilo de UI.
RunWorkerAsync()
el BackgroundWorker
, definiría el delegado DoWork()
y luego ejecutaría RunWorkerAsync()
Ahora en 8.1 ya no puedo usar BackgroundWorker
. En su lugar, necesito crear tareas que implementen IBackgroundTask
y utilizar objetos IBackgroundTrigger
ejecutarlas.
Parece que necesito saltar muchos aros solo para ejecutar código en un hilo diferente. Si quiero ejecutar una tarea en segundo plano de inmediato para crear una tarea de fondo desencadenada por tiempo con un nuevo OneShot TimeTrigger()
con 0 minutos de frescura? Eso parece un poco hack ...
¿Hay una alternativa a BackgroundTask
? ¿Debería cumplir mis requisitos de manera diferente?
Para ejecutar cualquier cosa en un hilo diferente, todo lo que necesita hacer es llamar:
Task.Run(delegate() {
// The work to be executed on the background thread
});
También puede await
esto de una manera no bloqueante, en caso de que quiera hacer algo después de que el trabajo en el hilo diferente haya terminado.
IBackgroundTask
es algo completamente diferente. Se usa cuando desea que se ejecute algún código en algún evento cuando la aplicación no se está ejecutando . Por ejemplo, si desea actualizar Live Tile cada 30 minutos, lo haría utilizando una tarea en segundo plano, implementando esa interfaz.