Task<TResult> Constructors

Definition

Inizializza un nuovo oggetto Task<TResult>.Initializes a new Task<TResult> object.

Overloads

Task<TResult>(Func<TResult>)

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.Initializes a new Task<TResult> with the specified function.

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e lo stato specificati.Initializes a new Task<TResult> with the specified function and state.

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

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.Initializes a new Task<TResult> with the specified function.

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.Initializes a new Task<TResult> with the specified function and creation options.

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.Initializes a new Task<TResult> with the specified function and creation options.

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

Task<TResult>(Func<TResult>)

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.Initializes a new Task<TResult> with the specified function.

public:
 Task(Func<TResult> ^ function);
public Task (Func<TResult> function);
new System.Threading.Tasks.Task<'Result> : Func<'Result> -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult))

Parameters

function
Func<TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

Exceptions

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Examples

Nell'esempio seguente viene conteggiato il numero approssimativo di parole in file di testo che rappresentano libri pubblicati.The following example counts the approximate number of words in text files that represent published books. Ogni attività è responsabile dell'apertura di un file, della lettura dell'intero contenuto in modo asincrono e del calcolo del conteggio delle parole tramite un'espressione regolare.Each task is responsible for opening a file, reading its entire contents asynchronously, and calculating the word count by using a regular expression. Viene chiamato il metodo Task.WaitAll(Task[]) per assicurarsi che tutte le attività siano state completate prima di visualizzare il conteggio delle parole di ogni libro nella console.The Task.WaitAll(Task[]) method is called to ensure that all tasks have completed before displaying the word count of each book to the console.

La creazione di istanze dell'oggetto è separata dall'esecuzione di un oggetto in questo esempio, in modo che l'esempio possa garantire l'esistenza di ogni file.Object instantiation is separated from object execution in this example so that the example can ensure that each file exists. In caso contrario, viene visualizzato il nome del file mancante.If they do not, it displays the name of the missing file. In caso contrario, chiama il metodo Task.Start per avviare ogni attività.Otherwise, it calls the Task.Start method to launch each task.

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

public class Example
{
   public static async Task Main()
   {
      string pattern = @"\p{P}*\s+";
      string[] titles = { "Sister Carrie", "The Financier" };
      Task<int>[] tasks = new Task<int>[titles.Length];

      for (int ctr = 0; ctr < titles.Length; ctr++) {
         string s = titles[ctr];
         tasks[ctr] = new Task<int>( () => {
                                   // Number of words.
                                   int nWords = 0;
                                   // Create filename from title.
                                   string fn = s + ".txt";

                                   StreamReader sr = new StreamReader(fn);
                                   string input = sr.ReadToEndAsync().Result;
                                   sr.Close();
                                   nWords = Regex.Matches(input, pattern).Count;
                                   return nWords;
                                } );
      }
      // Ensure files exist before launching tasks.
      bool allExist = true;
      foreach (var title in titles) {
         string fn = title + ".txt";
         if (! File.Exists(fn)) {
            allExist = false;
            Console.WriteLine("Cannot find '{0}'", fn);
            break;
         }   
      }
      // Launch tasks 
      if (allExist) {
         foreach (var t in tasks)
            t.Start();
      
        await Task.WhenAll(tasks);
  
        Console.WriteLine("Word Counts:\n");
        for (int ctr = 0; ctr < titles.Length; ctr++)
           Console.WriteLine("{0}: {1,10:N0} words", titles[ctr], tasks[ctr].Result);
      }   
   }
}
// The example displays the following output:
//       Sister Carrie:    159,374 words
//       The Financier:    196,362 words
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim pattern As String = "\p{P}*\s+"
      Dim titles() As String = { "Sister Carrie",
                                 "The Financier" }
      Dim tasks(titles.Length - 1) As Task(Of Integer)

      For ctr As Integer = 0 To titles.Length - 1
         Dim s As String = titles(ctr)
         tasks(ctr) = New Task(Of Integer)( Function()
                                   ' Number of words.
                                   Dim nWords As Integer = 0
                                   ' Create filename from title.
                                   Dim fn As String = s + ".txt"

                                   Dim sr As New StreamReader(fn)
                                   Dim input As String = sr.ReadToEndAsync().Result
                                   sr.Close()
                                   nWords = Regex.Matches(input, pattern).Count
                                   Return nWords
                                End Function)
      Next

      ' Ensure files exist before launching tasks.
      Dim allExist As Boolean = True
      For Each title In titles
         Dim fn As String = title + ".txt"
         If Not File.Exists(fn) Then
            allExist = false
            Console.WriteLine("Cannot find '{0}'", fn)
            Exit For
         End If   
      Next
      ' Launch tasks 
      If allExist Then
         For Each t in tasks
            t.Start()
         Next
         Task.WaitAll(tasks)

         Console.WriteLine("Word Counts:")
         Console.WriteLine()
         For ctr As Integer = 0 To titles.Length - 1
         Console.WriteLine("{0}: {1,10:N0} words", titles(ctr), tasks(ctr).Result)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Sister Carrie:    159,374 words
'       The Financier:    196,362 words

Il criterio di espressione regolare \p{P}*\s+ corrisponde a zero, uno o più caratteri di punteggiatura seguiti da uno o più caratteri di spazio vuoto.The regular expression pattern \p{P}*\s+ matches zero, one, or more punctuation characters followed by one or more white-space characters. Si presuppone che il numero totale di corrispondenze sia uguale al conteggio delle parole approssimativo.It assumes that the total number of matches equals the approximate word count.

Remarks

Questo costruttore deve essere utilizzato solo in scenari avanzati in cui è necessario che la creazione e l'avvio dell'attività siano separate.This constructor should only be used in advanced scenarios where it is required that the creation and starting of the task is separated.

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare i metodi statici Task.Run<TResult>(Func<TResult>) e TaskFactory<TResult>.StartNew(Func<TResult>).Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static Task.Run<TResult>(Func<TResult>) and TaskFactory<TResult>.StartNew(Func<TResult>) methods.

Se un'attività senza azione è necessaria solo per l'utente di un'API per avere qualcosa da attendere, è necessario usare un TaskCompletionSource<TResult>.If a task with no action is needed just for the consumer of an API to have something to await, a TaskCompletionSource<TResult> should be used.

See also

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e lo stato specificati.Initializes a new Task<TResult> with the specified function and state.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state);
public Task (Func<object,TResult> function, object state);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object)

Parameters

function
Func<Object,TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

Oggetto che rappresenta i dati che devono essere usati dall'azione.An object representing data to be used by the action.

Exceptions

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.Initializes a new Task<TResult> with the specified function.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken);
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken)

Parameters

function
Func<TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

cancellationToken
CancellationToken

Oggetto CancellationToken da assegnare a questa attività.The CancellationToken to be assigned to this task.

Exceptions

L'oggetto CancellationTokenSource che ha creato cancellationToken è già stato eliminato.The CancellationTokenSource that created cancellationToken has already been disposed.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare i metodi statici Task.Run<TResult>(Func<TResult>, CancellationToken) e TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken).Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static Task.Run<TResult>(Func<TResult>, CancellationToken) and TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) methods. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.Initializes a new Task<TResult> with the specified function and creation options.

public:
 Task(Func<TResult> ^ function, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), creationOptions As TaskCreationOptions)

Parameters

function
Func<TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

creationOptions
TaskCreationOptions

Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.The TaskCreationOptions used to customize the task's behavior.

Exceptions

L'argomento creationOptions specifica un valore non valido per TaskCreationOptions.The creationOptions argument specifies an invalid value for TaskCreationOptions.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken);
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken)

Parameters

function
Func<Object,TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.An object representing data to be used by the function.

cancellationToken
CancellationToken

Oggetto CancellationToken da assegnare alla nuova attività.The CancellationToken to be assigned to the new task.

Exceptions

L'oggetto CancellationTokenSource che ha creato cancellationToken è già stato eliminato.The CancellationTokenSource that created cancellationToken has already been disposed.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<object,TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, creationOptions As TaskCreationOptions)

Parameters

function
Func<Object,TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.An object representing data to be used by the function.

creationOptions
TaskCreationOptions

Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.The TaskCreationOptions used to customize the task's behavior.

Exceptions

L'argomento creationOptions specifica un valore non valido per TaskCreationOptions.The creationOptions argument specifies an invalid value for TaskCreationOptions.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.Initializes a new Task<TResult> with the specified function and creation options.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)

Parameters

function
Func<TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività.The CancellationToken that will be assigned to the new task.

creationOptions
TaskCreationOptions

Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.The TaskCreationOptions used to customize the task's behavior.

Exceptions

L'oggetto CancellationTokenSource che ha creato cancellationToken è già stato eliminato.The CancellationTokenSource that created cancellationToken has already been disposed.

L'argomento creationOptions specifica un valore non valido per TaskCreationOptions.The creationOptions argument specifies an invalid value for TaskCreationOptions.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

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

Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)

Parameters

function
Func<Object,TResult>

Delegato che rappresenta il codice da eseguire nell'attività.The delegate that represents the code to execute in the task. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.An object representing data to be used by the function.

cancellationToken
CancellationToken

Oggetto CancellationToken da assegnare alla nuova attività.The CancellationToken to be assigned to the new task.

creationOptions
TaskCreationOptions

Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.The TaskCreationOptions used to customize the task's behavior.

Exceptions

L'oggetto CancellationTokenSource che ha creato cancellationToken è già stato eliminato.The CancellationTokenSource that created cancellationToken has already been disposed.

L'argomento creationOptions specifica un valore non valido per TaskCreationOptions.The creationOptions argument specifies an invalid value for TaskCreationOptions.

Il valore dell'argomento function è null.The function argument is null.

Il valore dell'argomento function è null.The function argument is null.

Remarks

Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un oggetto Task<TResult> e avviare un'attività consiste nel chiamare il metodo TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) statico.Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) method. L'unico vantaggio offerto da questo costruttore è che consente di separare la creazione di istanze degli oggetti dalla chiamata dell'attività.The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

See also

Applies to