Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

CancellationTokenSource (Clase)

Señala un objeto CancellationToken que debe cancelarse.

System.Object
  System.Threading.CancellationTokenSource

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(false)]
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class CancellationTokenSource : IDisposable

El tipo CancellationTokenSource expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCancellationTokenSource()Inicializa una nueva instancia de la clase CancellationTokenSource.
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsCancellationTokenSource(Int32)Inicializa una nueva instancia de la clase de CancellationTokenSource que se cancela después del retraso especificado en milisegundos.
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsCancellationTokenSource(TimeSpan)Inicializa una nueva instancia de la clase de CancellationTokenSource que se cancela después de la duración especificada.
Arriba

  NombreDescripción
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsIsCancellationRequestedObtiene si se ha solicitado la cancelación de este objeto CancellationTokenSource.
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsTokenObtiene el objeto CancellationToken asociado a CancellationTokenSource.
Arriba

  NombreDescripción
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCancel()Comunica una solicitud de cancelación.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCancel(Boolean)Comunica una solicitud de cancelación, y especifica si las devoluciones de llamada restantes y las operaciones cancelables deben ser procesadas.
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsCancelAfter(Int32)Programa una operación de cancelación en este CancellationTokenSource después del número especificado de milisegundos.
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsCancelAfter(TimeSpan)Programa una operación de cancelación en este CancellationTokenSource después de la duración especificada.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCreateLinkedTokenSource(CancellationToken[])Crea un objeto CancellationTokenSource que tendrá el estado cancelado cuando alguno de los tokens de origen del la matriz especificada tenga el estado cancelado.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsCreateLinkedTokenSource(CancellationToken, CancellationToken)Crea un objeto CancellationTokenSource que tendrá el estado cancelado cuando alguno de los tokens de origen tenga el estado cancelado.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsDispose()Libera todos los recursos usados por la instancia actual de la clase CancellationTokenSource.
Método protegidoCompatible con .NET para aplicaciones de la Tienda WindowsDispose(Boolean)Libera los recursos no administrados utilizados por la clase CancellationTokenSource y, de forma opcional, libera los recursos administrados.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoCompatible con .NET para aplicaciones de la Tienda WindowsFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoCompatible con .NET para aplicaciones de la Tienda WindowsMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

Para obtener más información, vea Cancelación en subprocesos administrados.

NotaNota

El atributo HostProtectionAttribute aplicado a este tipo o miembro tiene el valor de propiedad Resources siguiente: Synchronization | ExternalThreading. El atributo HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician haciendo doble clic en un icono, escribiendo un comando o introduciendo una dirección URL en el explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación en SQL Server y atributos de protección de host.

El ejemplo siguiente utiliza un generador de números aleatorios para emular una aplicación de recolección de datos que lea 10 valores enteros desde once diferentes implementa. Un valor cero indica que la medición Error para un instrumento, en cuyo caso se cancele la operación y no se calculan ningún medio total.

Para controlar la cancelación posible de la operación, el ejemplo crea instancias de un objeto CancellationTokenSource que genera un token de cancelación que se pasa a un objeto TaskFactory . El objeto TaskFactory a su vez pasa el token de cancelación a cada una de las tareas responsables de obtener las lecturas para un nivel determinado. Se llama al método TaskFactory.ContinueWhenAll<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[], TResult>, CancellationToken) para garantizar que el medio sólo cuando todos lee calculadas se recopile correctamente. Si una tarea no tiene porque ha cancelado, la llamada al método TaskFactory.ContinueWhenAll produce una excepción.


using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      // Define the cancellation token.
      CancellationTokenSource source = new CancellationTokenSource();
      CancellationToken token = source.Token;

      Random rnd = new Random();
      Object lockObj = new Object();

      List<Task<int[]>> tasks = new List<Task<int[]>>();
      TaskFactory factory = new TaskFactory(token);
      for (int taskCtr = 0; taskCtr <= 10; taskCtr++) {
         int iteration = taskCtr + 1;
         tasks.Add(factory.StartNew( () => {
                                       int value;
                                       int[] values = new int[10];
                                       for (int ctr = 1; ctr <= 10; ctr++) {
                                          lock (lockObj) {
                                             value = rnd.Next(0,101);
                                          }
                                          if (value == 0) { 
                                             source.Cancel();
                                             Console.WriteLine("Cancelling at task {0}", iteration);
                                             break;
                                          }   
                                          values[ctr-1] = value; 
                                       }
                                       return values;
                                    }, token));   

      }
      try {
         Task<double> fTask = factory.ContinueWhenAll(tasks.ToArray(), 
                                                      (results) => {
                                                         Console.WriteLine("Calculating overall mean...");
                                                         long sum = 0;
                                                         int n = 0; 
                                                         foreach (var t in results) {
                                                            foreach (var r in t.Result) {
                                                                  sum += r;
                                                                  n++;
                                                               }
                                                         }
                                                         return sum/(double) n;
                                                      } , token);
         Console.WriteLine("The mean is {0}.", fTask.Result);
      }   
      catch (AggregateException ae) {
         foreach (Exception e in ae.InnerExceptions) {
            if (e is TaskCanceledException)
               Console.WriteLine("Unable to compute mean: {0}", 
                                 ((TaskCanceledException) e).Message);
            else
               Console.WriteLine("Exception: " + e.GetType().Name);
         }
      }                                                          
   }
}
// Repeated execution of the example produces output like the following:
//       Cancelling at task 5
//       Unable to compute mean: A task was canceled.
//       
//       Cancelling at task 10
//       Unable to compute mean: A task was canceled.
//       
//       Calculating overall mean...
//       The mean is 5.29545454545455.
//       
//       Cancelling at task 4
//       Unable to compute mean: A task was canceled.
//       
//       Cancelling at task 5
//       Unable to compute mean: A task was canceled.
//       
//       Cancelling at task 6
//       Unable to compute mean: A task was canceled.
//       
//       Calculating overall mean...
//       The mean is 4.97363636363636.
//       
//       Cancelling at task 4
//       Unable to compute mean: A task was canceled.
//       
//       Cancelling at task 5
//       Unable to compute mean: A task was canceled.
//       
//       Cancelling at task 4
//       Unable to compute mean: A task was canceled.
//       
//       Calculating overall mean...
//       The mean is 4.86545454545455.


.NET Framework

Compatible con: 4.5, 4

.NET Framework Client Profile

Compatible con: 4

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todo el público y miembros protegidos CancellationTokenSource son seguros para subprocesos y se pueden usar simultáneamente en varios subprocesos, salvo Dispose, que únicamente deben utilizarse cuando demás operaciones en el objeto CancellationTokenSource han completado.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft