Comment faire pour déterminer si la Tâche.Run est terminé dans une boucle

Cela peut être une drôle de question et c'est vraiment mon but pédagogique afin que je puisse l'appliquer dans des scénarios d'avenir peut venir.

Je suis à l'aide de C#.

Je suis en stress test donc ce n'est pas tout à fait le code de production.

- Je télécharger des données sur mon serveur via un service web.

J'ai démarrer le service à l'aide d'une Exécution.De la tâche.

- Je vérifier pour voir si la Tâche est terminée avant de permettre à la prochaine course.Tâche pour commencer.

Ceci est fait dans une boucle.

Cependant, parce que je suis en utilisant un système modulaire déclaré Tâche ne sera pas le résultat d'être touché?
Je pourrais déclarer un travail locaux.Exécuter variable mais je veux voir jusqu'où je peux aller avec cette question, 1er.

Si la Tâche.Peut déclencher un événement à-dire qu'il est terminé, alors c'est peut-être pas un problème?

C'est mon code:

//déclaration de module:

private static Task webTask = Task.Run(() => { System.Windows.Forms.Application.DoEvents(); });

//dans la fonction appelée par l'intermédiaire d'un minuteur

if (webTask.IsCompleted)
{
   //keep count of competed tasks
}


webTask = Task.Run(() =>
{
    try 
    { 
         wcf.UploadMotionDynamicRaw(bytes);  //my web service
    }
    catch (Exception ex)
    {
        //deal with error
    }
);
Utiliser les Tâche de Continuation. Il existe différents modi. L'un d'eux est faire quelque chose après la tâche est terminée. OMI, vous n'avez pas besoin de la minuterie - modifiez votre code pour webTask.ContinueWith....
SALUT, merci pour aquick réponse. Je vais regarder cela maintenant et rapport - merci 🙂
alors quand j'ai modifier mon code:
webTask = nouvelle Tâche(wcf.UploadMotionDynamicRaw(octets));
Il me donne une erreur " impossible de convertir de 'void' à 'Action'?

OriginalL'auteur Andrew Simpson | 2015-01-04