Task<TResult> Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje nový Task<TResult> objekt.
Přetížení
Task<TResult>(Func<TResult>) |
Inicializuje novou Task<TResult> pomocí zadané funkce. |
Task<TResult>(Func<Object,TResult>, Object) |
Inicializuje novou Task<TResult> se zadanou funkcí a stavem. |
Task<TResult>(Func<TResult>, CancellationToken) |
Inicializuje novou Task<TResult> pomocí zadané funkce. |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
Inicializuje novou Task<TResult> se zadanou funkcí a možnostmi vytvoření. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi. |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi. |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Inicializuje novou Task<TResult> se zadanou funkcí a možnostmi vytvoření. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi. |
Task<TResult>(Func<TResult>)
Inicializuje novou Task<TResult> pomocí zadané funkce.
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))
Parametry
- function
- Func<TResult>
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
Výjimky
Argument function
je null
.
Argument function
je null
.
Příklady
Následující příklad počítá přibližný počet slov v textových souborech, které představují publikované knihy. Každý úkol zodpovídá za otevření souboru, asynchronní čtení celého obsahu a výpočet počtu slov pomocí regulárního výrazu. Metoda Task.WaitAll(Task[]) se volá, aby se zajistilo, že všechny úkoly byly dokončeny před zobrazením počtu slov každé knihy do konzoly.
Instance objektu je v tomto příkladu oddělená od spuštění objektu, aby se zajistilo, že každý soubor existuje. Pokud ne, zobrazí se název chybějícího souboru. Jinak volá metodu Task.Start ke spuštění jednotlivých úloh.
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
Vzor regulárního výrazu \p{P}*\s+
odpovídá nule, jednomu nebo více interpunkčním znakům následovaným jedním nebo více prázdnými znaky. Předpokládá se, že celkový počet shod se rovná přibližný počet slov.
Poznámky
Tento konstruktor by se měl používat pouze v pokročilých scénářích, kde je nutné oddělit vytvoření a spuštění úkolu.
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úkolu voláním statických Task.Run<TResult>(Func<TResult>) a TaskFactory<TResult>.StartNew(Func<TResult>) metod.
Pokud úkol bez akce není nutný jenom pro příjemce rozhraní API, který má něco čekat, TaskCompletionSource<TResult> měl by se použít.
Viz také
Platí pro
Task<TResult>(Func<Object,TResult>, Object)
Inicializuje novou Task<TResult> se zadanou funkcí a stavem.
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)
Parametry
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má akce používat.
Výjimky
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<TResult>, CancellationToken)
Inicializuje novou Task<TResult> pomocí zadané funkce.
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)
Parametry
- function
- Func<TResult>
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- cancellationToken
- CancellationToken
Úkol, který CancellationToken má být přiřazen.
Výjimky
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úkolu voláním statických Task.Run<TResult>(Func<TResult>, CancellationToken) a TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) metod. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<TResult>, TaskCreationOptions)
Inicializuje novou Task<TResult> se zadanou funkcí a možnostmi vytvoření.
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)
Parametry
- function
- Func<TResult>
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
Argument creationOptions
určuje neplatnou hodnotu pro TaskCreationOptions.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi.
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)
Parametry
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má funkce používat.
- cancellationToken
- CancellationToken
Úkol, který CancellationToken má být přiřazen k novému úkolu.
Výjimky
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi.
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)
Parametry
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má funkce používat.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
Argument creationOptions
určuje neplatnou hodnotu pro TaskCreationOptions.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
Inicializuje novou Task<TResult> se zadanou funkcí a možnostmi vytvoření.
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)
Parametry
- function
- Func<TResult>
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- cancellationToken
- CancellationToken
Ta CancellationToken bude přiřazena novému úkolu.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Argument creationOptions
určuje neplatnou hodnotu pro TaskCreationOptions.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.
Viz také
Platí pro
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
Inicializuje novou Task<TResult> se zadanou akcí, stavem a možnostmi.
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)
Parametry
Delegát, který představuje kód, který se má provést v úloze. Po dokončení funkce bude vlastnost úkolu Result nastavena tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má funkce používat.
- cancellationToken
- CancellationToken
Úkol, který CancellationToken má být přiřazen k novému úkolu.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Argument creationOptions
určuje neplatnou hodnotu pro TaskCreationOptions.
Argument function
je null
.
Argument function
je null
.
Poznámky
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance Task<TResult> objektu a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) metody. Jedinou výhodou tohoto konstruktoru je, že umožňuje instanci objektu oddělit od vyvolání úkolů.