Task<TResult> Klasa
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.
Reprezentuje operację asynchroniczną, która może zwrócić wartość.
generic <typename TResult>
public ref class Task : System::Threading::Tasks::Task
public class Task<TResult> : System.Threading.Tasks.Task
type Task<'Result> = class
inherit Task
Public Class Task(Of TResult)
Inherits Task
Parametry typu
- TResult
Typ wyniku wygenerowanego przez ten Task<TResult>.
- Dziedziczenie
Uwagi
Klasa Task<TResult> reprezentuje pojedynczą operację, która zwraca wartość i zwykle wykonuje asynchronicznie. Task<TResult> obiekty są jednym z głównych składników wzorca asynchronicznego opartego na zadaniach wprowadzonego po raz pierwszy w programie .NET Framework 4. Ponieważ praca wykonywana przez obiekt Task<TResult> zwykle wykonuje asynchronicznie na wątku puli wątków, a nie synchronicznie w głównym wątku aplikacji, można użyć właściwości Status, a także właściwości IsCanceled, IsCompletedi IsFaulted, aby określić stan zadania. Najczęściej wyrażenie lambda służy do określania pracy, którą ma wykonać zadanie.
Task<TResult> wystąpienia mogą być tworzone na różne sposoby. Najbardziej typowym podejściem, które jest dostępne, począwszy od programu .NET Framework 4.5, jest wywołanie metody statycznej Task.Run<TResult>(Func<TResult>) lub Task.Run<TResult>(Func<TResult>, CancellationToken). Te metody zapewniają prosty sposób uruchamiania zadania przy użyciu wartości domyślnych i bez uzyskiwania dodatkowych parametrów. W poniższym przykładzie użyto metody Task.Run<TResult>(Func<TResult>), aby uruchomić zadanie, które wykonuje pętlę, a następnie wyświetla liczbę iteracji pętli:
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var t = Task<int>.Run( () => {
// Just loop.
int max = 1000000;
int ctr = 0;
for (ctr = 0; ctr <= max; ctr++) {
if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
ctr++;
break;
}
}
return ctr;
} );
Console.WriteLine("Finished {0:N0} iterations.", t.Result);
}
}
// The example displays output like the following:
// Finished 1,000,001 loop iterations.
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t As Task(Of Integer) = Task.Run(Function()
Dim max As Integer = 1000000
Dim ctr As Integer
For ctr = 0 to max
If ctr = max \ 2 And Date.Now.Hour <= 12 Then
ctr += 1
Exit For
End If
Next
Return ctr
End Function)
Console.WriteLine("Finished {0:N0} iterations.", t.Result)
End Sub
End Module
' The example displays the following output:
' Finished 1,000,001 loop iterations
Alternatywą i najczęstszym sposobem uruchamiania zadania w programie .NET Framework 4 jest wywołanie metody statycznej TaskFactory.StartNew lub TaskFactory<TResult>.StartNew. Właściwość Task.Factory zwraca obiekt TaskFactory, a właściwość Task<TResult>.Factory zwraca obiekt TaskFactory<TResult>. Przeciążenia ich StartNew
metody umożliwiają przekazywanie argumentów, definiowanie opcji tworzenia zadań i określanie harmonogramu zadań. W poniższym przykładzie użyto metody TaskFactory<TResult>.StartNew(Func<TResult>) do uruchomienia zadania. Jest ona funkcjonalnie równoważna kodowi w poprzednim przykładzie.
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var t = Task<int>.Factory.StartNew( () => {
// Just loop.
int max = 1000000;
int ctr = 0;
for (ctr = 0; ctr <= max; ctr++) {
if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
ctr++;
break;
}
}
return ctr;
} );
Console.WriteLine("Finished {0:N0} iterations.", t.Result);
}
}
// The example displays the following output:
// Finished 1000001 loop iterations
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t = Task(Of Integer).Factory.StartNew(Function()
Dim max As Integer = 1000000
Dim ctr As Integer
For ctr = 0 to max
If ctr = max \ 2 And Date.Now.Hour <= 12 Then
ctr += 1
Exit For
End If
Next
Return ctr
End Function)
Console.WriteLine("Finished {0:N0} iterations.", t.Result)
End Sub
End Module
' The example displays output like the following:
' Finished 1,000,001 iterations
Aby uzyskać więcej kompletnych przykładów, zobacz Asynchroniczne programowanie oparte na zadaniach.
Klasa Task<TResult> udostępnia również konstruktory, które inicjują zadanie, ale nie są zaplanowane do wykonania. Ze względu na wydajność metody Task.Run i Task.Factory.StartNew
są preferowanymi mechanizmami tworzenia i planowania zadań obliczeniowych, ale w scenariuszach, w których należy oddzielić tworzenie i planowanie zadań, konstruktory mogą być używane, a Start metody zadania mogą być następnie używane do planowania zadania do wykonania w późniejszym czasie.
Począwszy od aplikacji klasycznych przeznaczonych dla programu .NET Framework 4.6, kultura wątku tworzącego i wywołującego zadanie staje się częścią kontekstu wątku. Oznacza to, że niezależnie od bieżącej kultury wątku, na którym wykonuje zadanie, bieżąca kultura zadania jest kulturą wątku wywołującego. W przypadku aplikacji przeznaczonych dla wersji programu .NET Framework przed programem .NET Framework 4.6 kultura zadania jest kulturą wątku, na którym wykonuje zadanie. Aby uzyskać więcej informacji, zobacz sekcję "Operacje asynchroniczne oparte na kulturze i zadaniach" w temacie CultureInfo. Pamiętaj, że aplikacje ze Sklepu są zgodne ze środowiskiem uruchomieniowym systemu Windows w ustawieniu i uzyskiwaniu kultury domyślnej.
W przypadku operacji, które nie zwracają wartości, należy użyć klasy Task. Począwszy od języka C# 7.0, w przypadku bardziej lekkiego zadania, które jest typem wartości, a nie typem referencyjnym, użyj struktury System.Threading.Tasks.ValueTask<TResult>.
Konstruktory
Task<TResult>(Func<Object,TResult>, Object) |
Inicjuje nową Task<TResult> z określoną funkcją i stanem. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Inicjuje nową Task<TResult> z określoną akcją, stanem i opcjami. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określoną akcją, stanem i opcjami. |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określoną akcją, stanem i opcjami. |
Task<TResult>(Func<TResult>) |
Inicjuje nową Task<TResult> z określoną funkcją. |
Task<TResult>(Func<TResult>, CancellationToken) |
Inicjuje nową Task<TResult> z określoną funkcją. |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określonymi opcjami funkcji i tworzenia. |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
Inicjuje nową Task<TResult> z określonymi opcjami funkcji i tworzenia. |
Właściwości
AsyncState |
Pobiera obiekt stanu podany podczas tworzenia Task lub ma wartość null, jeśli żadna z nich nie została podana. (Odziedziczone po Task) |
CreationOptions |
Pobiera TaskCreationOptions użyte do utworzenia tego zadania. (Odziedziczone po Task) |
Exception |
Pobiera AggregateException, które spowodowały przedwczesne zakończenie Task. Jeśli Task została ukończona pomyślnie lub nie zgłosiła jeszcze żadnych wyjątków, zostanie zwrócona |
Factory |
Pobiera metodę fabryki do tworzenia i konfigurowania wystąpień Task<TResult>. |
Id |
Pobiera identyfikator dla tego wystąpienia Task. (Odziedziczone po Task) |
IsCanceled |
Pobiera, czy to wystąpienie Task zostało ukończone z powodu anulowania. (Odziedziczone po Task) |
IsCompleted |
Pobiera wartość wskazującą, czy zadanie zostało ukończone. (Odziedziczone po Task) |
IsCompletedSuccessfully |
Pobiera, czy zadanie było uruchamiane do ukończenia. (Odziedziczone po Task) |
IsFaulted |
Pobiera, czy Task ukończone z powodu nieobsługiwanego wyjątku. (Odziedziczone po Task) |
Result |
Pobiera wartość wyniku tego Task<TResult>. |
Status |
Pobiera TaskStatus tego zadania. (Odziedziczone po Task) |
Metody
ConfigureAwait(Boolean) |
Konfiguruje obiekt awaiter używany do oczekiwania na ten Task<TResult>. |
ConfigureAwait(Boolean) |
Konfiguruje obiekt awaiter używany do oczekiwania na ten Task. (Odziedziczone po Task) |
ConfigureAwait(ConfigureAwaitOptions) |
Konfiguruje obiekt awaiter używany do oczekiwania na ten Task. |
ConfigureAwait(ConfigureAwaitOptions) |
Konfiguruje obiekt awaiter używany do oczekiwania na ten Task. (Odziedziczone po Task) |
ContinueWith(Action<Task,Object>, Object) |
Tworzy kontynuację odbierającą informacje o stanie dostarczone przez obiekt wywołujący i wykonywaną po zakończeniu Task docelowej. (Odziedziczone po Task) |
ContinueWith(Action<Task,Object>, Object, CancellationToken) |
Tworzy kontynuację, która odbiera informacje o stanie dostarczonym przez obiekt wywołujący i token anulowania oraz wykonuje asynchronicznie po zakończeniu Task docelowej. (Odziedziczone po Task) |
ContinueWith(Action<Task,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację, która odbiera informacje o stanie dostarczonym przez obiekt wywołujący i token anulowania oraz jest wykonywana po zakończeniu Task docelowej. Kontynuacja jest wykonywana na podstawie zestawu określonych warunków i używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith(Action<Task,Object>, Object, TaskContinuationOptions) |
Tworzy kontynuację odbierającą informacje o stanie dostarczone przez obiekt wywołujący i wykonywaną po zakończeniu Task docelowej. Kontynuacja jest wykonywana na podstawie zestawu określonych warunków. (Odziedziczone po Task) |
ContinueWith(Action<Task,Object>, Object, TaskScheduler) |
Tworzy kontynuację, która odbiera informacje o stanie dostarczone przez obiekt wywołujący i wykonuje asynchronicznie po zakończeniu Task docelowej. Kontynuacja używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith(Action<Task<TResult>,Object>, Object) |
Tworzy kontynuację przekazywaną informację o stanie i wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>,Object>, Object, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>,Object>, Object, TaskScheduler) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>>) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu zadania docelowego. |
ContinueWith(Action<Task<TResult>>, CancellationToken) |
Tworzy kontynuację z możliwością anulowania, która jest wykonywana asynchronicznie po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w |
ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w |
ContinueWith(Action<Task<TResult>>, TaskScheduler) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task<TResult> docelowej. |
ContinueWith(Action<Task>) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task docelowej. (Odziedziczone po Task) |
ContinueWith(Action<Task>, CancellationToken) |
Tworzy kontynuację, która odbiera token anulowania i wykonuje asynchronicznie po zakończeniu Task docelowej. (Odziedziczone po Task) |
ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną, gdy zadanie docelowe konkuruje zgodnie z określonym TaskContinuationOptions. Kontynuacja odbiera token anulowania i używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith(Action<Task>, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną po zakończeniu zadania docelowego zgodnie z określonym TaskContinuationOptions. (Odziedziczone po Task) |
ContinueWith(Action<Task>, TaskScheduler) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task docelowej. Kontynuacja używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskScheduler) |
Tworzy kontynuację wykonywaną po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task<TResult> docelowej. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskScheduler) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task<TResult> docelowej. |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object) |
Tworzy kontynuację, która odbiera informacje o stanie dostarczonym przez obiekt wywołujący i wykonuje asynchronicznie po zakończeniu Task docelowej i zwraca wartość. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken) |
Tworzy kontynuację, która wykonuje asynchronicznie po zakończeniu Task docelowej i zwraca wartość. Kontynuacja odbiera informacje o stanie dostarczone przez obiekt wywołujący i token anulowania. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną na podstawie określonych opcji kontynuacji zadania, gdy Task docelowa zostanie ukończona i zwróci wartość. Kontynuacja odbiera informacje o stanie dostarczone przez obiekt wywołujący i token anulowania i używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną na podstawie określonych opcji kontynuacji zadania po zakończeniu Task docelowej. Kontynuacja odbiera informacje o stanie dostarczone przez obiekt wywołujący. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskScheduler) |
Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu Task docelowej. Kontynuacja odbiera informacje o stanie dostarczone przez obiekt wywołujący i używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,TResult>) |
Tworzy kontynuację, która wykonuje asynchronicznie po zakończeniu Task<TResult> docelowej i zwraca wartość. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken) |
Tworzy kontynuację, która wykonuje asynchronicznie po zakończeniu Task docelowej i zwraca wartość. Kontynuacja otrzymuje token anulowania. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Tworzy kontynuację wykonywaną zgodnie z określonymi opcjami kontynuacji i zwraca wartość. Kontynuacja jest przekazywana token anulowania i używa określonego harmonogramu. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,TResult>, TaskContinuationOptions) |
Tworzy kontynuację wykonywaną zgodnie z określonymi opcjami kontynuacji i zwraca wartość. (Odziedziczone po Task) |
ContinueWith<TResult>(Func<Task,TResult>, TaskScheduler) |
Tworzy kontynuację, która wykonuje asynchronicznie po zakończeniu Task docelowej i zwraca wartość. Kontynuacja używa określonego harmonogramu. (Odziedziczone po Task) |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy Task. (Odziedziczone po Task) |
Dispose(Boolean) |
Usuwa Task, zwalniając wszystkie niezarządzane zasoby. (Odziedziczone po Task) |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetAwaiter() |
Pobiera element awaiter używany do oczekiwania na ten Task<TResult>. |
GetAwaiter() |
Pobiera element awaiter używany do oczekiwania na ten Task. (Odziedziczone po Task) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
RunSynchronously() |
Uruchamia Task synchronicznie w bieżącym TaskScheduler. (Odziedziczone po Task) |
RunSynchronously(TaskScheduler) |
Uruchamia Task synchronicznie w podanym TaskScheduler. (Odziedziczone po Task) |
Start() |
Uruchamia Task, planując jego wykonanie do bieżącego TaskScheduler. (Odziedziczone po Task) |
Start(TaskScheduler) |
Uruchamia Task, planując wykonanie do określonego TaskScheduler. (Odziedziczone po Task) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Wait() |
Czeka na ukończenie wykonywania Task. (Odziedziczone po Task) |
Wait(CancellationToken) |
Czeka na ukończenie wykonywania Task. Oczekiwanie kończy się, jeśli token anulowania zostanie anulowany przed ukończeniem zadania. (Odziedziczone po Task) |
Wait(Int32) |
Czeka na ukończenie wykonywania Task w ciągu określonej liczby milisekund. (Odziedziczone po Task) |
Wait(Int32, CancellationToken) |
Czeka na ukończenie wykonywania Task. Oczekiwanie kończy się, jeśli upłynie interwał limitu czasu lub token anulowania zostanie anulowany przed ukończeniem zadania. (Odziedziczone po Task) |
Wait(TimeSpan) |
Czeka na ukończenie wykonywania Task w określonym przedziale czasu. (Odziedziczone po Task) |
Wait(TimeSpan, CancellationToken) |
Czeka na ukończenie wykonywania Task. (Odziedziczone po Task) |
WaitAsync(CancellationToken) |
Pobiera Task<TResult>, które zostaną ukończone po zakończeniu tego Task<TResult> lub gdy określony CancellationToken zażądał anulowania. |
WaitAsync(CancellationToken) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task lub gdy określony CancellationToken zażądał anulowania. (Odziedziczone po Task) |
WaitAsync(TimeSpan) |
Pobiera Task<TResult>, które zostaną ukończone po zakończeniu tego Task<TResult> lub upływie określonego limitu czasu. |
WaitAsync(TimeSpan) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task lub upływie określonego limitu czasu. (Odziedziczone po Task) |
WaitAsync(TimeSpan, CancellationToken) |
Pobiera Task<TResult>, które zostaną ukończone po zakończeniu tego Task<TResult>, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. |
WaitAsync(TimeSpan, CancellationToken) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. (Odziedziczone po Task) |
WaitAsync(TimeSpan, TimeProvider) |
Pobiera Task<TResult>, które zostaną ukończone po zakończeniu tego Task<TResult> lub upływie określonego limitu czasu. |
WaitAsync(TimeSpan, TimeProvider) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task lub upływie określonego limitu czasu. (Odziedziczone po Task) |
WaitAsync(TimeSpan, TimeProvider, CancellationToken) |
Pobiera Task<TResult>, które zostaną ukończone po zakończeniu tego Task<TResult>, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. |
WaitAsync(TimeSpan, TimeProvider, CancellationToken) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. (Odziedziczone po Task) |
Jawne implementacje interfejsu
IAsyncResult.AsyncWaitHandle |
Pobiera WaitHandle, których można użyć do oczekiwania na ukończenie zadania. (Odziedziczone po Task) |
IAsyncResult.CompletedSynchronously |
Pobiera wskazanie, czy operacja została ukończona synchronicznie. (Odziedziczone po Task) |
Metody rozszerzania
WaitAsync(Task, TimeSpan, TimeProvider, CancellationToken) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. |
WaitAsync<TResult>(Task<TResult>, TimeSpan, TimeProvider, CancellationToken) |
Pobiera Task, które zostaną ukończone po zakończeniu tego Task, po upływie określonego limitu czasu lub żądaniu anulowania określonego CancellationToken. |
DispatcherOperationWait(Task) |
Czeka na ukończenie bazowego DispatcherOperation przez czas nieokreślony. |
DispatcherOperationWait(Task, TimeSpan) |
Czeka na określoną ilość czasu na ukończenie bazowego DispatcherOperation. |
IsDispatcherOperationTask(Task) |
Zwraca wartość wskazującą, czy ta Task jest skojarzona z DispatcherOperation. |
AsAsyncAction(Task) |
Zwraca akcję asynchroniczną środowiska uruchomieniowego systemu Windows reprezentującą uruchomione zadanie. |
AsAsyncOperation<TResult>(Task<TResult>) |
Zwraca operację asynchroniczną środowiska uruchomieniowego systemu Windows reprezentującą uruchomione zadanie, które zwraca wynik. |
Dotyczy
Bezpieczeństwo wątkowe
Wszystkie elementy członkowskie Task<TResult>, z wyjątkiem Dispose(), są bezpieczne wątkowo i mogą być używane z wielu wątków jednocześnie.
Zobacz też
- Task
- biblioteki równoległej zadań
(TPL) - programowanie asynchroniczne oparte na zadaniach
- przykłady programowania równoległego przy użyciu platform .NET Core i .NET Standard