Task<TResult> Costruttori
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza un nuovo oggetto Task<TResult>.
Overload
Task<TResult>(Func<TResult>) |
Inizializza un nuovo oggetto Task<TResult> con la funzione specificata. |
Task<TResult>(Func<Object,TResult>, Object) |
Inizializza un nuovo oggetto Task<TResult> con la funzione e lo stato specificati. |
Task<TResult>(Func<TResult>, CancellationToken) |
Inizializza un nuovo oggetto Task<TResult> con la funzione specificata. |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati. |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati. |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati. |
Task<TResult>(Func<TResult>)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.
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))
Parametri
- function
- Func<TResult>
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
Eccezioni
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Esempio
Nell'esempio seguente viene conteggiato il numero approssimativo di parole nei file di testo che rappresentano libri pubblicati. Ogni attività è responsabile dell'apertura di un file, della lettura asincrona dell'intero contenuto e del calcolo del conteggio delle parole tramite un'espressione regolare. Il Task.WaitAll(Task[]) metodo viene chiamato per assicurarsi che tutte le attività siano state completate prima di visualizzare il numero di parole di ogni libro nella console.
La creazione di istanze degli oggetti è separata dall'esecuzione dell'oggetto in questo esempio in modo che l'esempio possa garantire che ogni file esista. In caso contrario, viene visualizzato il nome del file mancante. In caso contrario, chiama il Task.Start metodo per avviare ogni attività.
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 \p{P}*\s+
di espressione regolare corrisponde a zero, uno o più caratteri di punteggiatura seguiti da uno o più caratteri di spazi vuoti. Presuppone che il numero totale di corrispondenze corrisponda al conteggio approssimativo delle parole.
Commenti
Questo costruttore deve essere usato solo in scenari avanzati in cui è necessario che la creazione e l'avvio dell'attività siano separati.
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare i metodi e statici Task.Run<TResult>(Func<TResult>)TaskFactory<TResult>.StartNew(Func<TResult>) .
Se un'attività senza azione è necessaria solo per consentire al consumer di un'API di avere qualcosa da attendere, deve essere usato un oggetto TaskCompletionSource<TResult> .
Vedi anche
Si applica a
Task<TResult>(Func<Object,TResult>, Object)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con la funzione e lo stato specificati.
public:
Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state);
public Task (Func<object,TResult> function, 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)
Parametri
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- state
- Object
Oggetto che rappresenta i dati che devono essere utilizzati dall'azione.
Eccezioni
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<TResult>, CancellationToken)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con la funzione specificata.
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)
Parametri
- function
- Func<TResult>
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- cancellationToken
- CancellationToken
Oggetto CancellationToken da assegnare a questa attività.
Eccezioni
L'oggetto CancellationTokenSource che ha creato cancellationToken
è già stato eliminato.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare i metodi e statici Task.Run<TResult>(Func<TResult>, CancellationToken)TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<TResult>, TaskCreationOptions)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.
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)
Parametri
- function
- Func<TResult>
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- creationOptions
- TaskCreationOptions
Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.
Eccezioni
L'argomento creationOptions
specifica un valore non valido per TaskCreationOptions.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.
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);
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)
Parametri
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- state
- Object
Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.
- cancellationToken
- CancellationToken
Oggetto CancellationToken da assegnare alla nuova attività.
Eccezioni
L'oggetto CancellationTokenSource che ha creato cancellationToken
è già stato eliminato.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.
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);
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)
Parametri
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- state
- Object
Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.
- creationOptions
- TaskCreationOptions
Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.
Eccezioni
L'argomento creationOptions
specifica un valore non valido per TaskCreationOptions.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con la funzione e le opzioni di creazione specificate.
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)
Parametri
- function
- Func<TResult>
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- cancellationToken
- CancellationToken
Oggetto CancellationToken che verrà assegnato alla nuova attività.
- creationOptions
- TaskCreationOptions
Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.
Eccezioni
L'oggetto CancellationTokenSource che ha creato cancellationToken
è già stato eliminato.
L'argomento creationOptions
specifica un valore non valido per TaskCreationOptions.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.
Vedi anche
Si applica a
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
- Origine:
- Future.cs
- Origine:
- Future.cs
- Origine:
- Future.cs
Inizializza un nuovo oggetto Task<TResult> con l'azione, lo stato e le opzioni specificati.
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);
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)
Parametri
Delegato che rappresenta il codice da eseguire nell'attività. Quando la funzione è stata completata, la proprietà Result dell'attività verrà impostata affinché restituisca il valore del risultato della funzione.
- state
- Object
Oggetto che rappresenta i dati che devono essere utilizzati dalla funzione.
- cancellationToken
- CancellationToken
Oggetto CancellationToken da assegnare alla nuova attività.
- creationOptions
- TaskCreationOptions
Oggetto TaskCreationOptions usato per personalizzare il comportamento dell'attività.
Eccezioni
L'oggetto CancellationTokenSource che ha creato cancellationToken
è già stato eliminato.
L'argomento creationOptions
specifica un valore non valido per TaskCreationOptions.
Il valore dell'argomento function
è null
.
Il valore dell'argomento function
è null
.
Commenti
Anziché chiamare questo costruttore, il modo più comune per creare un'istanza di un Task<TResult> oggetto e avviare un'attività consiste nel chiamare il metodo statico TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) . L'unico vantaggio offerto da questo costruttore è che consente di separare l'istanza dell'oggetto dalla chiamata all'attività.