Task<TResult> Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowy Task<TResult> obiekt.
Przeciążenia
Task<TResult>(Func<TResult>) |
Inicjuje nową Task<TResult> z określoną funkcją. |
Task<TResult>(Func<Object,TResult>, Object) |
Inicjuje nową Task<TResult> z określoną funkcją i stanem. |
Task<TResult>(Func<TResult>, CancellationToken) |
Inicjuje nową Task<TResult> z określoną funkcją. |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Inicjuje nową Task<TResult> akcję, stan i opcje. |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Inicjuje nową Task<TResult> akcję, stan i opcje. |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Inicjuje nową Task<TResult> akcję, stan i opcje. |
Task<TResult>(Func<TResult>)
Inicjuje nową Task<TResult> z określoną funkcją.
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>
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
Wyjątki
Argumentem function
jest null
.
Argumentem function
jest null
.
Przykłady
Poniższy przykład zlicza przybliżoną liczbę wyrazów w plikach tekstowych reprezentujących opublikowane książki. Każde zadanie jest odpowiedzialne za otwieranie pliku, odczytywanie całej zawartości asynchronicznie i obliczanie liczby wyrazów przy użyciu wyrażenia regularnego. Metoda jest wywoływana Task.WaitAll(Task[]) w celu upewnienia się, że wszystkie zadania zostały wykonane przed wyświetleniem liczby wyrazów każdej książki w konsoli.
Wystąpienie obiektu jest oddzielone od wykonywania obiektu w tym przykładzie, dzięki czemu przykład może zagwarantować, że każdy plik istnieje. Jeśli tak nie jest, zostanie wyświetlona nazwa brakującego pliku. W przeciwnym razie wywołuje metodę Task.Start , aby uruchomić każde zadanie.
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
Wzorzec \p{P}*\s+
wyrażenia regularnego pasuje do zera, co najmniej jednego znaku interpunkcyjnego, po którym następuje co najmniej jeden znak odstępu. Przyjęto założenie, że łączna liczba dopasowań jest równa przybliżonej liczbie wyrazów.
Uwagi
Ten konstruktor powinien być używany tylko w zaawansowanych scenariuszach, w których wymagane jest oddzielenie tworzenia i uruchamiania zadania.
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metod statycznych Task.Run<TResult>(Func<TResult>) i TaskFactory<TResult>.StartNew(Func<TResult>) .
Jeśli zadanie bez akcji jest potrzebne tylko użytkownikowi interfejsu API do oczekiwania, TaskCompletionSource<TResult> należy użyć elementu .
Zobacz też
Dotyczy
Task<TResult>(Func<Object,TResult>, Object)
Inicjuje nową Task<TResult> z określoną funkcją i stanem.
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
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- state
- Object
Obiekt reprezentujący dane, które mają być używane przez akcję.
Wyjątki
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<TResult>, CancellationToken)
Inicjuje nową Task<TResult> z określoną funkcją.
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>
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- cancellationToken
- CancellationToken
Element CancellationToken do przypisania do tego zadania.
Wyjątki
Utworzony CancellationTokenSource element cancellationToken
został już usunięty.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metod statycznych Task.Run<TResult>(Func<TResult>, CancellationToken) i TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<TResult>, TaskCreationOptions)
Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.
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>
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- creationOptions
- TaskCreationOptions
Element TaskCreationOptions używany do dostosowywania zachowania zadania.
Wyjątki
Argument creationOptions
określa nieprawidłową wartość dla elementu TaskCreationOptions.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
Inicjuje nową Task<TResult> akcję, stan i opcje.
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
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- state
- Object
Obiekt reprezentujący dane, które mają być używane przez funkcję.
- cancellationToken
- CancellationToken
Element CancellationToken do przypisania do nowego zadania.
Wyjątki
Utworzony CancellationTokenSource element cancellationToken
został już usunięty.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
Inicjuje nową Task<TResult> akcję, stan i opcje.
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
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- state
- Object
Obiekt reprezentujący dane, które mają być używane przez funkcję.
- creationOptions
- TaskCreationOptions
Element TaskCreationOptions używany do dostosowywania zachowania zadania.
Wyjątki
Argument creationOptions
określa nieprawidłową wartość dla elementu TaskCreationOptions.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.
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>
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- cancellationToken
- CancellationToken
Element CancellationToken , który zostanie przypisany do nowego zadania.
- creationOptions
- TaskCreationOptions
Element TaskCreationOptions używany do dostosowywania zachowania zadania.
Wyjątki
Utworzony CancellationTokenSource element cancellationToken
został już usunięty.
Argument creationOptions
określa nieprawidłową wartość dla elementu TaskCreationOptions.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.
Zobacz też
Dotyczy
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
Inicjuje nową Task<TResult> akcję, stan i opcje.
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
Delegat reprezentujący kod do wykonania w zadaniu. Po zakończeniu działania funkcji właściwość zadania zostanie ustawiona Result tak, aby zwracała wartość wynikową funkcji.
- state
- Object
Obiekt reprezentujący dane, które mają być używane przez funkcję.
- cancellationToken
- CancellationToken
Element CancellationToken do przypisania do nowego zadania.
- creationOptions
- TaskCreationOptions
Element TaskCreationOptions używany do dostosowywania zachowania zadania.
Wyjątki
Utworzony CancellationTokenSource element cancellationToken
został już usunięty.
Argument creationOptions
określa nieprawidłową wartość dla elementu TaskCreationOptions.
Argumentem function
jest null
.
Argumentem function
jest null
.
Uwagi
Zamiast wywoływać ten konstruktor, najczęstszym sposobem utworzenia wystąpienia Task<TResult> obiektu i uruchomienia zadania jest wywołanie metody statycznej TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) . Jedyną zaletą oferowaną przez ten konstruktor jest możliwość oddzielenia wystąpienia obiektu od wywołania zadania.