Task<TResult> Konstruktoren
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Initialisiert ein neues Task<TResult> Objekt.
Überlädt
| Name | Beschreibung |
|---|---|
| Task<TResult>(Func<TResult>) |
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion. |
| Task<TResult>(Func<Object,TResult>, Object) |
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion und dem angegebenen Zustand. |
| Task<TResult>(Func<TResult>, CancellationToken) |
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion. |
| Task<TResult>(Func<TResult>, TaskCreationOptions) |
Initialisiert ein neues Task<TResult> mit den angegebenen Funktionen und Erstellungsoptionen. |
| Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen. |
| Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen. |
| Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Initialisiert ein neues Task<TResult> mit den angegebenen Funktionen und Erstellungsoptionen. |
| Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen. |
Task<TResult>(Func<TResult>)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion.
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))
Parameter
- function
- Func<TResult>
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
Ausnahmen
Das function Argument ist null.
Das function Argument ist null.
Beispiele
Im folgenden Beispiel wird die ungefähre Anzahl von Wörtern in Textdateien gezählt, die veröffentlichte Bücher darstellen. Jede Aufgabe ist dafür verantwortlich, eine Datei zu öffnen, den gesamten Inhalt asynchron zu lesen und die Wortanzahl mithilfe eines regulären Ausdrucks zu berechnen. Die Task.WaitAll(Task[]) Methode wird aufgerufen, um sicherzustellen, dass alle Aufgaben abgeschlossen wurden, bevor die Wortanzahl der einzelnen Bücher in der Konsole angezeigt wird.
Die Objektinstanziierung wird in diesem Beispiel von der Objektausführung getrennt, sodass das Beispiel sicherstellen kann, dass jede Datei vorhanden ist. Wenn sie dies nicht tun, wird der Name der fehlenden Datei angezeigt. Andernfalls wird die Task.Start Methode aufgerufen, um jede Aufgabe zu starten.
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
Das Muster \p{P}*\s+ für reguläre Ausdrücke entspricht null, ein oder mehrere Interpunktionszeichen gefolgt von mindestens einem Leerzeichen. Es wird davon ausgegangen, dass die Gesamtanzahl der Übereinstimmungen der ungefähren Wortanzahl entspricht.
Hinweise
Dieser Konstruktor sollte nur in erweiterten Szenarien verwendet werden, in denen es erforderlich ist, dass das Erstellen und Starten der Aufgabe getrennt ist.
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statischen Task.Run<TResult>(Func<TResult>) Und TaskFactory<TResult>.StartNew(Func<TResult>) Methoden aufzurufen.
Wenn eine Aufgabe ohne Aktion nur für den Verbraucher einer API benötigt wird, um etwas zu erwarten, sollte eine TaskCompletionSource<TResult> verwendet werden.
Weitere Informationen
Gilt für:
Task<TResult>(Func<Object,TResult>, Object)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion und dem angegebenen Zustand.
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)
Parameter
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- state
- Object
Ein Objekt, das Daten darstellt, die von der Aktion verwendet werden sollen.
Ausnahmen
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<TResult>, CancellationToken)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Funktion.
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)
Parameter
- function
- Func<TResult>
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- cancellationToken
- CancellationToken
Der CancellationToken dieser Aufgabe zugewiesen werden soll.
Ausnahmen
Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statischen Task.Run<TResult>(Func<TResult>, CancellationToken) Und TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) Methoden aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<TResult>, TaskCreationOptions)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit den angegebenen Funktionen und Erstellungsoptionen.
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)
Parameter
- function
- Func<TResult>
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- creationOptions
- TaskCreationOptions
Wird TaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Ausnahmen
Das creationOptions Argument gibt einen ungültigen Wert für TaskCreationOptions.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen.
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)
Parameter
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- state
- Object
Ein Objekt, das Daten darstellt, die von der Funktion verwendet werden sollen.
- cancellationToken
- CancellationToken
Der CancellationToken dem neuen Vorgang zugewiesen werden soll.
Ausnahmen
Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen.
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)
Parameter
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- state
- Object
Ein Objekt, das Daten darstellt, die von der Funktion verwendet werden sollen.
- creationOptions
- TaskCreationOptions
Wird TaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Ausnahmen
Das creationOptions Argument gibt einen ungültigen Wert für TaskCreationOptions.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit den angegebenen Funktionen und Erstellungsoptionen.
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)
Parameter
- function
- Func<TResult>
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- cancellationToken
- CancellationToken
Das CancellationToken wird der neuen Aufgabe zugewiesen.
- creationOptions
- TaskCreationOptions
Wird TaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Ausnahmen
Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.
Das creationOptions Argument gibt einen ungültigen Wert für TaskCreationOptions.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.
Weitere Informationen
Gilt für:
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
- Quelle:
- Future.cs
- Quelle:
- Task_T.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
- Quelle:
- Future.cs
Initialisiert ein neues Task<TResult> mit der angegebenen Aktion, dem angegebenen Zustand und den Optionen.
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)
Parameter
Der Delegat, der den Code darstellt, der in der Aufgabe ausgeführt werden soll. Wenn die Funktion abgeschlossen ist, wird die Eigenschaft des Vorgangs Result so festgelegt, dass der Ergebniswert der Funktion zurückgegeben wird.
- state
- Object
Ein Objekt, das Daten darstellt, die von der Funktion verwendet werden sollen.
- cancellationToken
- CancellationToken
Der CancellationToken dem neuen Vorgang zugewiesen werden soll.
- creationOptions
- TaskCreationOptions
Wird TaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Ausnahmen
Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.
Das creationOptions Argument gibt einen ungültigen Wert für TaskCreationOptions.
Das function Argument ist null.
Das function Argument ist null.
Hinweise
Anstatt diesen Konstruktor aufzurufen, besteht die am häufigsten verwendete Methode zum Instanziieren eines Task<TResult> Objekts und starten einer Aufgabe darin, die statische TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) Methode aufzurufen. Der einzige Vorteil dieses Konstruktors besteht darin, dass die Objektinstanziierung von einem Vorgangsaufruf getrennt werden kann.