Was nutzt die Übergabe von CancellationToken an den Task Class-Konstruktor?

Hier ist ein Beispiel-code, erstellt eine neue Aufgabe, die simuliert einen lang andauernden Prozess.Es gibt nicht viel auf die Aufgabe als solche und die rein konzentriert sich auf die cancelling-Funktionen.Ich bin mit Rücktritt token zum Abbrechen der Aufgabe und der code funktioniert gut für mich.

       CancellationTokenSource CTS= new CancellationTokenSource();

       Task<Boolean> PTask = new Task<Boolean>(() => 
       {
           while (true)
           {
               if (!CTS.Token.IsCancellationRequested)
               {
                  Thread.Sleep(5000);
               }
               else{Console.WriteLine("Thread Cancelled");break;}
           }
           return true;

       }, CTS.Token, TaskCreationOptions.None);

       PTask.Start();
       Console.WriteLine("Hit Enter to cancel the Secondary thread you have started");
       Console.ReadLine();
       CTS.Cancel();
       System.Console.WriteLine(PTask.Result);

    }
}

Aber onething, dass ich nicht verstehen konnte, ist der token-parameter(CTS.Token), die weitergegeben wird an die Task-Konstruktor.Was ist die tatsächliche Nutzung der übergabe der parameter,Wann kann ich eigentlich Abbrechen, die Aufgabe auch ohne passing-token an den Konstruktor übergeben.

Unten ist eine leicht modifizierte version, die funktioniert ohne den parameter token.

      CancellationTokenSource CTS= new CancellationTokenSource();
      Task<Boolean> PTask = new Task<Boolean>(() => 
       {
           while (true)
           {
               if (!CTS.Token.IsCancellationRequested)
               {
                   Thread.Sleep(5000);
               }
               else
               {
                   Console.WriteLine("Thread Cancelled");
                   break;
               }
       };
Kommentar zu dem Problem
Ich würde empfehlen, das Lesen: blogs.msdn.com/b/pfxteam/archive/2009/05/22/9635790.aspx Kommentarautor: Slugart

InformationsquelleAutor der Frage Prabhu Murthy | 2012-06-01

Schreibe einen Kommentar