2014-05-21 1 views
-1

Je voudrais savoir comment charger le modèle asynchrone du service en utilisant Tâche. Jusqu'à présent, j'ai utilisé BackgroundWorker dans le modèle de vue. Quelqu'un peut-il me donner un exemple clair? Merci.Charger le modèle asynchrone en utilisant la tâche

+2

Ceci est une question très générale. Avez-vous regardé des exemples pour le modèle 'async-await' en ligne? Une recherche Google vous donnera des millions. – PoweredByOrange

+0

@PoweredByOrange, je * pense * qu'ils veulent savoir comment annoncer l'état à l'interface utilisateur (ou s'il y a une contrepartie au rappel OnProgress), mais c'est une supposition. –

Répondre

0

Pour charger un modèle en utilisant le TPL, voici un code indicatif ...

 Task t = new Task(() => 
     { 
      // broadcast start of busy state 
     }); 
     t.ContinueWith((z) => 
     { 
      // load the model 
     }); 
     t.ContinueWith((x) => 
     { 
      // broadcast end of busy state 
     }); 
     t.Start(); 

La première tâche permet à l'interface utilisateur sait que l'application entre dans un état occupé afin que l'utilisateur peut être fourni avec visuel des indices.

La deuxième tâche effectue le levage lourd.

La tâche finale annonce que le travail est terminé. (X) peut être interrogé pour déterminer le message d'interface utilisateur approprié (il a travaillé ou il n'a pas fonctionné)

documentation de la tâche est ici http://msdn.microsoft.com/en-us/library/vstudio/system.threading.tasks.task

Questions connexes