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í
| Name | Description |
|---|---|
| Task<TResult>(Func<TResult>) |
Inicializuje novou Task<TResult> se zadanou funkcí. |
| Task<TResult>(Func<Object,TResult>, Object) |
Inicializuje novou Task<TResult> se zadanou funkcí a stavem. |
| Task<TResult>(Func<TResult>, CancellationToken) |
Inicializuje novou Task<TResult> se zadanou funkcí. |
| 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>)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
Inicializuje novou Task<TResult> se zadanou funkcí.
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví 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 spočítá přibližný počet slov v textových souborech, které představují publikované knihy. Každý úkol je zodpovědný 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 v konzole.
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. V opačném případě 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 \p{P}*\s+ regulárního výrazu 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, kdy je nutné oddělit vytvoření a spuštění úlohy.
Místo volání tohoto konstruktoru je nejběžnější způsob vytvoření instance objektu Task<TResult> a spuštění úlohy voláním statických Task.Run<TResult>(Func<TResult>) a TaskFactory<TResult>.StartNew(Func<TResult>) metod.
Pokud úkol bez akce není potřeba jenom pro příjemce rozhraní API, aby něco čekalo, TaskCompletionSource<TResult> měl by se použít.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<Object,TResult>, Object)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má akce použít.
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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<TResult>, CancellationToken)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
Inicializuje novou Task<TResult> se zadanou funkcí.
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví tak, aby vrátila výslednou hodnotu funkce.
- cancellationToken
- CancellationToken
Úkol CancellationToken , který má být přiřazen.
Výjimky
Vytvořené objekty CancellationTokenSourcecancellationToken již byly odstraněny.
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 objektu Task<TResult> a spuštění úlohy voláním statických Task.Run<TResult>(Func<TResult>, CancellationToken) a TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) metod. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<TResult>, TaskCreationOptions)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví 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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má funkce používat.
- cancellationToken
- CancellationToken
Úkol CancellationToken , který má být přiřazen k novému úkolu.
Výjimky
Vytvořené objekty CancellationTokenSourcecancellationToken již byly odstraněny.
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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví 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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví tak, aby vrátila výslednou hodnotu funkce.
- cancellationToken
- CancellationToken
Ten CancellationToken bude přiřazen k novému úkolu.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
Vytvořené objekty CancellationTokenSourcecancellationToken již byly odstraněny.
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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách
Platí pro
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
- Zdroj:
- Future.cs
- Zdroj:
- Task_T.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
- Zdroj:
- Future.cs
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 úkolu. Po dokončení funkce se vlastnost úkolu Result nastaví tak, aby vrátila výslednou hodnotu funkce.
- state
- Object
Objekt představující data, která má funkce používat.
- cancellationToken
- CancellationToken
Úkol CancellationToken , který má být přiřazen k novému úkolu.
- creationOptions
- TaskCreationOptions
Slouží TaskCreationOptions k přizpůsobení chování úkolu.
Výjimky
Vytvořené objekty CancellationTokenSourcecancellationToken již byly odstraněny.
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 objektu Task<TResult> a spuštění úlohy voláním statické TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) metody. Jedinou výhodou, kterou tento konstruktor nabízí, je, že umožňuje vytvoření instance objektu oddělit od vyvolání úkolu.
Viz také
- Knihovna pro paralelní zpracování úloh (Task Parallel Library)
- Asynchronní programování založené na úlohách