CancellationToken.IsCancellationRequested Egenskap

Definition

Hämtar om annullering har begärts för den här token.

public:
 property bool IsCancellationRequested { bool get(); };
public bool IsCancellationRequested { get; }
member this.IsCancellationRequested : bool
Public ReadOnly Property IsCancellationRequested As Boolean

Egenskapsvärde

trueom annullering har begärts för denna token; annars . false

Exempel

Följande är ett enkelt exempel som kör en serverprocess tills egenskapen IsCancellationRequested returnerar true.

using System;
using System.Threading;

public class ServerClass
{
   public static void StaticMethod(object obj)
   {
      CancellationToken ct = (CancellationToken)obj;
      Console.WriteLine("ServerClass.StaticMethod is running on another thread.");

      // Simulate work that can be canceled.
      while (!ct.IsCancellationRequested) {
         Thread.SpinWait(50000);
      }
      Console.WriteLine("The worker thread has been canceled. Press any key to exit.");
      Console.ReadKey(true);
   }
}

public class Simple
{
   public static void Main()
   {
      // The Simple class controls access to the token source.
      CancellationTokenSource cts = new CancellationTokenSource();

      Console.WriteLine("Press 'C' to terminate the application...\n");
      // Allow the UI thread to capture the token source, so that it
      // can issue the cancel command.
      Thread t1 = new Thread(() => { if (Console.ReadKey(true).KeyChar.ToString().ToUpperInvariant() == "C")
                                     cts.Cancel(); } );

      // ServerClass sees only the token, not the token source.
      Thread t2 = new Thread(new ParameterizedThreadStart(ServerClass.StaticMethod));
      // Start the UI thread.

      t1.Start();

      // Start the worker thread and pass it the token.
      t2.Start(cts.Token);

      t2.Join();
      cts.Dispose();
   }
}
// The example displays the following output:
//       Press 'C' to terminate the application...
//
//       ServerClass.StaticMethod is running on another thread.
//       The worker thread has been canceled. Press any key to exit.
Imports System.Threading

Public Class ServerClass
   Public Shared Sub StaticMethod(obj As Object)
      Dim ct AS CancellationToken = CType(obj, CancellationToken)
      Console.WriteLine("ServerClass.StaticMethod is running on another thread.")

      ' Simulate work that can be canceled.
      While Not ct.IsCancellationRequested
         Thread.SpinWait(50000)
      End While
      Console.WriteLine("The worker thread has been canceled. Press any key to exit.")
      Console.ReadKey(True)
   End Sub
End Class

Public Class Simple
   Public Shared Sub Main()
      ' The Simple class controls access to the token source.
      Dim cts As New CancellationTokenSource()

      Console.WriteLine("Press 'C' to terminate the application..." + vbCrLf)
      ' Allow the UI thread to capture the token source, so that it
      ' can issue the cancel command.
      Dim t1 As New Thread( Sub()
                               If Console.ReadKey(true).KeyChar.ToString().ToUpperInvariant() = "C" Then
                                  cts.Cancel()
                               End If
                            End Sub)

      ' ServerClass sees only the token, not the token source.
      Dim t2 As New Thread(New ParameterizedThreadStart(AddressOf ServerClass.StaticMethod))

      ' Start the UI thread.
      t1.Start()

      ' Start the worker thread and pass it the token.
      t2.Start(cts.Token)

      t2.Join()
      cts.Dispose()
   End Sub
End Class
' The example displays the following output:
'       Press 'C' to terminate the application...
'
'       ServerClass.StaticMethod is running on another thread.
'       The worker thread has been canceled. Press any key to exit.

Exemplet instansierar ett CancellationTokenSource objekt som styr åtkomsten till annulleringstoken. Sedan definieras två trådprocedurer. Den första definieras som ett lambda-uttryck som poolar tangentbordet och, när "C"-tangenten trycks ned, anropar CancellationTokenSource.Cancel för att ställa in annulleringstoken till inställt tillstånd. Den andra är en parameteriserad metod, ServerClass.StaticMethod, som kör en loop tills egenskapen IsCancellationRequested är true.

Huvudtråden startar sedan de två trådarna och blocken tills tråden som kör ServerClass.StaticMethod metoden avslutas.

Kommentarer

Den här egenskapen anger om annullering har begärts för den här token, antingen via token som ursprungligen skapades i ett avbrutet tillstånd eller genom att anropa Cancel tokens associerade CancellationTokenSource.

Om den här egenskapen är truegaranterar den bara att annullering har begärts. Det garanterar inte att alla registrerade hanterare har slutfört körningen eller att begäranden om annullering har spridits till alla registrerade hanterare. Ytterligare synkronisering kan krävas, särskilt i situationer där relaterade objekt avbryts samtidigt.

Gäller för

Se även