Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe Task<TResult>

 

Data di pubblicazione: ottobre 2016

Rappresenta un'operazione asincrona in grado di restituire un valore.

Spazio dei nomi:   System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Threading.Tasks.Task
    System.Threading.Tasks.Task<TResult>

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class Task<TResult> : Task

Parametri tipo

TResult

Tipo del risultato prodotto da questo oggetto Task<TResult>.

NomeDescrizione
System_CAPS_pubmethodTask<TResult>(Func<TResult>)

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.

System_CAPS_pubmethodTask<TResult>(Func<TResult>, CancellationToken)

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.

System_CAPS_pubmethodTask<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.

System_CAPS_pubmethodTask<TResult>(Func<TResult>, TaskCreationOptions)

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.

System_CAPS_pubmethodTask<TResult>(Func<Object, TResult>, Object)

Inizializza un nuovo oggetto Task<TResult> con la funzione e lo stato specificati.

System_CAPS_pubmethodTask<TResult>(Func<Object, TResult>, Object, CancellationToken)

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.

System_CAPS_pubmethodTask<TResult>(Func<Object, TResult>, Object, CancellationToken, TaskCreationOptions)

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.

System_CAPS_pubmethodTask<TResult>(Func<Object, TResult>, Object, TaskCreationOptions)

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.

NomeDescrizione
System_CAPS_pubpropertyAsyncState

Ottiene l'oggetto stato fornito quando è stato creato Task oppure null se non ne è stato fornito alcuno.(Ereditato da Task.)

System_CAPS_pubpropertyCreationOptions

Ottiene l'oggetto TaskCreationOptions usato per creare questa attività.(Ereditato da Task.)

System_CAPS_pubpropertyException

Ottiene l'oggetto AggregateException che ha causato l'interruzione anomala di Task. Se l'oggetto Task è stato completato correttamente o non ha ancora generato alcuna eccezione, verrà restituito null.(Ereditato da Task.)

System_CAPS_pubpropertySystem_CAPS_staticFactory

Fornisce l'accesso ai metodi factory per la creazione e la configurazione delle istanze di Task<TResult>.

System_CAPS_pubpropertyId

Ottiene un ID per questa istanza di Task.(Ereditato da Task.)

System_CAPS_pubpropertyIsCanceled

Ottiene un valore che indica se l'esecuzione di questa istanza di Task è stata completata perché annullata.(Ereditato da Task.)

System_CAPS_pubpropertyIsCompleted

Ottiene un valore che indica se questo oggetto Task è stato completato.(Ereditato da Task.)

System_CAPS_pubpropertyIsFaulted

Ottiene un valore che indica se l'oggetto Task è stato completato a causa di un'eccezione non gestita.(Ereditato da Task.)

System_CAPS_pubpropertyResult

Ottiene il valore del risultato di Task<TResult>.

System_CAPS_pubpropertyStatus

Ottiene l'oggetto TaskStatus di questa attività.(Ereditato da Task.)

NomeDescrizione
System_CAPS_pubmethodConfigureAwait(Boolean)

Configura un elemento awaiter usato per attendere questo oggetto Task<TResult>.

System_CAPS_pubmethodContinueWith(Action<Task, Object>, Object)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e viene eseguita al completamento dell'oggetto Task di destinazione.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task, Object>, Object, CancellationToken)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e un token di annullamento e che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task, Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e un token di annullamento e che viene eseguita al completamento dell'oggetto Task di destinazione. La continuazione viene eseguita in base a un set di condizioni specificate e usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task, Object>, Object, TaskContinuationOptions)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e viene eseguita al completamento dell'oggetto Task di destinazione. La continuazione viene eseguita in base a un set di condizioni specificate.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task, Object>, Object, TaskScheduler)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione. La continuazione usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task<TResult>, Object>, Object)

Crea una continuazione che riceve informazioni sullo stato e viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>, Object>, Object, CancellationToken)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>, Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>, Object>, Object, TaskContinuationOptions)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>, Object>, Object, TaskScheduler)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>>)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'attività di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>>, CancellationToken)

Crea una continuazione annullabile che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita in base alla condizione specificata in continuationOptions.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>>, TaskContinuationOptions)

Crea una continuazione che viene eseguita in base alla condizione specificata in continuationOptions.

System_CAPS_pubmethodContinueWith(Action<Task<TResult>>, TaskScheduler)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith(Action<Task>)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task>, CancellationToken)

Crea una continuazione che riceve un token di annullamento e viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita al completamento dell'attività di destinazione in base all'oggetto TaskContinuationOptions specificato. La continuazione riceve un token di annullamento e usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task>, TaskContinuationOptions)

Crea una continuazione che viene eseguita al completamento dell'attività di destinazione in base all'oggetto TaskContinuationOptions specificato.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith(Action<Task>, TaskScheduler)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione. La continuazione usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, TResult>)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione e restituisce un valore.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, TResult>, CancellationToken)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione e restituisce un valore. La continuazione riceve un token di annullamento.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita in base alle opzioni di continuazione specificate e restituisce un valore. La continuazione riceve un token di annullamento e usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, TResult>, TaskContinuationOptions)

Crea una continuazione che viene eseguita in base alle opzioni di continuazione specificate e restituisce un valore.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, TResult>, TaskScheduler)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione e restituisce un valore. La continuazione usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, Object, TResult>, Object)

Crea una continuazione che riceve informazioni sullo stato fornite dal chiamante e viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione, quindi restituisce un valore.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione e restituisce un valore. La continuazione riceve informazioni sullo stato fornite dal chiamante e un token di annullamento.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita in base alle opzioni specificate per la continuazione delle attività al completamento dell'oggetto Task di destinazione, quindi restituisce un valore. La continuazione riceve informazioni sullo stato fornite dal chiamante e un token di annullamento, quindi usa l'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskContinuationOptions)

Crea una continuazione che viene eseguita in base alle opzioni specificate per la continuazione delle attività al completamento dell'oggetto Task di destinazione. La continuazione riceve informazioni sullo stato fornite dal chiamante.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskScheduler)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task di destinazione. La continuazione riceve informazioni sullo stato fornite dal chiamante e usa un'utilità di pianificazione specificata.(Ereditato da Task.)

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, TNewResult>)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, TNewResult>, CancellationToken)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita in base alla condizione specificata in continuationOptions.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, TNewResult>, TaskContinuationOptions)

Crea una continuazione che viene eseguita in base alla condizione specificata in continuationOptions.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, TNewResult>, TaskScheduler)

Crea una continuazione che viene eseguita in modo asincrono al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, Object, TNewResult>, Object)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, Object, TNewResult>, Object, CancellationToken)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, Object, TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, Object, TNewResult>, Object, TaskContinuationOptions)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodContinueWith<TNewResult>(Func<Task<TResult>, Object, TNewResult>, Object, TaskScheduler)

Crea una continuazione che viene eseguita al completamento dell'oggetto Task<TResult> di destinazione.

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe Task.(Ereditato da Task.)

System_CAPS_protmethodDispose(Boolean)

Elimina Task, rilasciandone tutte le risorse non gestite.(Ereditato da Task.)

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.(Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di effettuare un tentativo di liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato da Garbage Collection.(Ereditato da Object.)

System_CAPS_pubmethodGetAwaiter()

Ottiene un elemento awaiter usato per attendere questo oggetto Task<TResult>.

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodRunSynchronously()

Esegue Task in modo sincrono nell'oggetto TaskScheduler corrente.(Ereditato da Task.)

System_CAPS_pubmethodRunSynchronously(TaskScheduler)

Esegue Task in modo sincrono nell'oggetto TaskScheduler fornito.(Ereditato da Task.)

System_CAPS_pubmethodStart()

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler corrente.(Ereditato da Task.)

System_CAPS_pubmethodStart(TaskScheduler)

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler specificato.(Ereditato da Task.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente.(Ereditato da Object.)

System_CAPS_pubmethodWait()

Attende il completamento dell'esecuzione di Task.(Ereditato da Task.)

System_CAPS_pubmethodWait(CancellationToken)

Attende il completamento dell'esecuzione di Task. L'attesa termina se un token di annullamento viene annullato prima del completamento dell'attività.(Ereditato da Task.)

System_CAPS_pubmethodWait(Int32)

Attende il completamento dell'esecuzione di Task entro un numero specificato di millisecondi.(Ereditato da Task.)

System_CAPS_pubmethodWait(Int32, CancellationToken)

Attende il completamento dell'esecuzione di Task. L'attesa termina se si esaurisce l'intervallo di timeout o se un token di annullamento viene annullato prima del completamento dell'attività.(Ereditato da Task.)

System_CAPS_pubmethodWait(TimeSpan)

Attende il completamento dell'esecuzione di Task entro un intervallo di tempo specificato.(Ereditato da Task.)

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privpropertyIAsyncResult.AsyncWaitHandle

Ottiene un oggetto WaitHandle che può essere usato per attendere il completamento dell'attività.(Ereditato da Task.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIAsyncResult.CompletedSynchronously

Ottiene un valore che indica se l'operazione è stata completata in modo sincrono.(Ereditato da Task.)

NomeDescrizione
System_CAPS_pubmethodDispatcherOperationWait()

Sottoposto a overload. Tempo di attesa indefinito per sottostante DispatcherOperation per il completamento.(Definito da TaskExtensions.)

System_CAPS_pubmethodDispatcherOperationWait(TimeSpan)

Sottoposto a overload. Attende il periodo di tempo per l'oggetto sottostante specificato DispatcherOperation per il completamento.(Definito da TaskExtensions.)

System_CAPS_pubmethodIsDispatcherOperationTask()

Restituisce un valore che indica se questo Task è associato un DispatcherOperation.(Definito da TaskExtensions.)

La Task<TResult> classe rappresenta una singola operazione che restituisce un valore e che in genere viene eseguita in modo asincrono. Task<TResult> gli oggetti sono uno dei componenti centrali del primo stato introdotto in .NET Framework 4. Poiché il lavoro eseguito da un Task<TResult> in genere viene eseguito l'oggetto in modo asincrono in un pool di thread anziché in modo sincrono sul thread principale dell'applicazione, è possibile utilizzare il Status proprietà, nonché i IsCanceled, IsCompleted, e IsFaulted proprietà per determinare lo stato di un'attività. In genere, un'espressione lambda viene utilizzata per specificare il lavoro che l'attività da eseguire.

Task<TResult> è possibile creare istanze in diversi modi. L'approccio più comune, che è disponibile a partire dal .NET Framework 4.5, consiste nel chiamare il metodo statico Task.Run<TResult>(Func<TResult>) o Task.Run<TResult>(Func<TResult>, CancellationToken) (metodo). Questi metodi forniscono un modo semplice per avviare un'attività utilizzando i valori predefiniti e senza acquisire parametri aggiuntivi. Nell'esempio seguente viene utilizzata la Task.Run<TResult>(Func<TResult>) metodo per avviare un'attività che esegue un ciclo e quindi Visualizza il numero di iterazioni del ciclo:

using System;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var t = Task<int>.Run( () => {
                                      // Just loop.
                                      int max = 1000000;
                                      int ctr = 0;
                                      for (ctr = 0; ctr <= max; ctr++) {
                                         if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
                                            ctr++;
                                            break;
                                         }
                                      }
                                      return ctr;
                                    } );
      Console.WriteLine("Finished {0:N0} iterations.", t.Result);
   }
}
// The example displays output like the following:
//        Finished 1,000,001 loop iterations.

In alternativa e il modo più comune per avviare un'attività nel .NET Framework 4, consiste nel chiamare il metodo statico TaskFactory.StartNew o TaskFactory<TResult>.StartNew (metodo). Il Task.Factory restituisce un TaskFactory oggetto e Task<TResult>.Factory restituisce un TaskFactory<TResult> oggetto. Gli overload del loro StartNew metodo consente di passare argomenti, definire le opzioni di creazione di attività e specificare un'utilità di pianificazione. Nell'esempio seguente viene utilizzata la TaskFactory<TResult>.StartNew(Func<TResult>) metodo per avviare un'attività. È funzionalmente equivalente al codice nell'esempio precedente.

using System;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var t = Task<int>.Factory.StartNew( () => {
                                      // Just loop.
                                      int max = 1000000;
                                      int ctr = 0;
                                      for (ctr = 0; ctr <= max; ctr++) {
                                         if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
                                            ctr++;
                                            break;
                                         }
                                      }
                                      return ctr;
                               } );
      Console.WriteLine("Finished {0:N0} iterations.", t.Result);
   }
}
// The example displays the following output:
//        Finished 1000001 loop iterations

Per esempi più completi, vedere Task Parallelism (Task Parallel Library).

La Task<TResult> classe fornisce anche costruttori che inizializzano l'attività, ma che non pianificarne l'esecuzione. Per motivi di prestazioni, la Task.Run e StartNew metodi sono il meccanismo preferito per creare e pianificare le attività di calcolo, ma per gli scenari in cui devono essere separati creazione di attività e la pianificazione, è possibile utilizzare i costruttori e l'attività Start metodo può quindi essere utilizzato per pianificare l'esecuzione in un secondo momento.

A partire dalle applicazioni desktop che hanno come destinazione il .NET Framework 4.6, le impostazioni cultura del thread che crea e richiama un'attività diventano parte del contesto del thread. Ovvero, indipendentemente dalle impostazioni cultura correnti del thread in cui viene eseguita l'attività, le impostazioni cultura correnti dell'attività sono le impostazioni cultura del thread chiamante. Per le applicazioni destinate a versioni di .NET Framework precedenti a di .NET Framework 4.6, le impostazioni cultura dell'attività sono le impostazioni cultura del thread in cui viene eseguita l'attività. Per ulteriori informazioni, vedere la sezione "Impostazioni cultura e le operazioni asincrone basate sulle attività" nel CultureInfo argomento. Si noti che le app di Store seguono Windows Runtime nell'impostazione e recupero delle impostazioni cultura predefinite.

Per le operazioni che non restituiscono un valore, utilizzare la Task classe.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 5.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1

Tutti i membri di Task<TResult>, ad eccezione di Dispose, sono thread-safe e possono essere utilizzati da più thread contemporaneamente.

Torna all'inizio
Mostra: