Task<TResult> Klasa

Definicja

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>element .

Dziedziczenie
Task<TResult>

Uwagi

Klasa Task<TResult> reprezentuje pojedynczą operację, która zwraca wartość i która zwykle jest wykonywana asynchronicznie. Task<TResult>obiekty są jednym z głównych składników asynchronicznego wzorca opartego na zadaniach po raz pierwszy wprowadzonego w .NET Framework 4. Ponieważ praca wykonywana przez Task<TResult> obiekt zwykle jest wykonywana asynchronicznie w wątku puli wątków, a nie synchronicznie w głównym wątku aplikacji, można użyć Status właściwości, a także IsCanceledwłaściwości , IsCompletedi IsFaulted w celu określenia stanu 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 .NET Framework 4.5, jest wywołanie metody statycznej Task.Run<TResult>(Func<TResult>) lubTask.Run<TResult>(Func<TResult>, CancellationToken). Metody te zapewniają prosty sposób uruchamiania zadania przy użyciu wartości domyślnych i bez uzyskiwania dodatkowych parametrów. W poniższym przykładzie Task.Run<TResult>(Func<TResult>) użyto metody , aby uruchomić pętlę zadania, a następnie wyświetlić 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 .NET Framework 4 jest wywołanie metody statycznej TaskFactory.StartNew lubTaskFactory<TResult>.StartNew. Właściwość Task.Factory zwraca TaskFactory obiekt, a Task<TResult>.Factory właściwość zwraca TaskFactory<TResult> obiekt. 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 TaskFactory<TResult>.StartNew(Func<TResult>) metody , aby uruchomić zadanie. 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 Programowanie asynchroniczne oparte na zadaniach.

Klasa Task<TResult> udostępnia również konstruktory, które inicjują zadanie, ale nie są zaplanowane do wykonania. Ze względów Task.Run wydajności metody i Task.Factory.StartNew są preferowanymi mechanizmami tworzenia i planowania zadań obliczeniowych, ale w scenariuszach, w których tworzenie i planowanie zadań musi być oddzielone, konstruktory mogą być używane, a metoda zadania może być następnie używana do planowania zadania Start do wykonania w późniejszym czasie.

Począwszy od aplikacji klasycznych, które są przeznaczone dla .NET Framework 4.6, kultura wątku, który tworzy i wywołuje 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 .NET Framework przed .NET Framework 4.6 kultura zadania jest kulturą wątku, na którym jest wykonywane 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 z środowisko wykonawcze systemu Windows w ustawieniu i uzyskiwaniu kultury domyślnej.

W przypadku operacji, które nie zwracają wartości, należy użyć Task klasy . Począwszy od języka C# 7.0, w przypadku bardziej uproszczonego zadania, które jest typem wartości, a nie typem referencyjnym, użyj System.Threading.Tasks.ValueTask<TResult> struktury.

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> akcję, stan i opcje.

Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)

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>)

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śloną funkcją i opcjami tworzenia.

Task<TResult>(Func<TResult>, TaskCreationOptions)

Inicjuje nową Task<TResult> z określoną funkcją i opcjami tworzenia.

Właściwości

AsyncState

Pobiera obiekt stanu podany podczas Task tworzenia lub ma wartość null, jeśli nie podano żadnego.

(Odziedziczone po Task)
CreationOptions

Pobiera element używany do utworzenia TaskCreationOptions tego zadania.

(Odziedziczone po Task)
Exception

AggregateException Dostaje, który spowodował Task koniec przedwcześnie. Jeśli ukończono Task pomyślnie lub nie zgłosiło jeszcze żadnych wyjątków, zostanie zwrócona wartość null.

(Odziedziczone po Task)
Factory

Pobiera metodę fabryki do tworzenia i konfigurowania Task<TResult> wystąpień.

Id

Pobiera identyfikator dla tego Task wystąpienia.

(Odziedziczone po Task)
IsCanceled

Pobiera informację, czy to Task wystąpienie zakończyło wykonywanie z powodu anulowania.

(Odziedziczone po Task)
IsCompleted

Pobiera wartość wskazującą, czy zadanie zostało ukończone.

(Odziedziczone po Task)
IsCompletedSuccessfully

Pobiera informację o tym, czy zadanie było uruchamiane do ukończenia.

(Odziedziczone po Task)
IsFaulted

Pobiera informację o zakończeniu Task z powodu nieobsługiwanego wyjątku.

(Odziedziczone po Task)
Result

Pobiera wartość wyniku tej Task<TResult>wartości .

Status

TaskStatus Pobiera element tego zadania.

(Odziedziczone po Task)

Metody

ConfigureAwait(Boolean)

Konfiguruje obiekt awaiter używany do oczekiwania na ten Task<TResult>element .

ConfigureAwait(Boolean)

Konfiguruje obiekt awaiter używany do oczekiwania na ten Taskelement .

(Odziedziczone po Task)
ConfigureAwait(ConfigureAwaitOptions)

Konfiguruje obiekt awaiter używany do oczekiwania na ten Taskelement .

ConfigureAwait(ConfigureAwaitOptions)

Konfiguruje obiekt awaiter używany do oczekiwania na ten Taskelement .

(Odziedziczone po Task)
ContinueWith(Action<Task,Object>, Object)

Tworzy kontynuację, która odbiera informacje o stanie dostarczone przez obiekt wywołujący i jest wykonywana po zakończeniu działania obiektu docelowego Task .

(Odziedziczone po Task)
ContinueWith(Action<Task,Object>, Object, CancellationToken)

Tworzy kontynuację, która odbiera informacje o stanie dostarczonym przez obiekt wywołujący oraz token anulowania, który jest wykonywany asynchronicznie po zakończeniu działania obiektu docelowego Task .

(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 oraz token anulowania, który jest wykonywany po zakończeniu działania obiektu docelowego Task . 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ę, która odbiera informacje o stanie dostarczone przez obiekt wywołujący i jest wykonywana po zakończeniu działania obiektu docelowego Task . 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 działania obiektu docelowego Task . Kontynuacja używa określonego harmonogramu.

(Odziedziczone po Task)
ContinueWith(Action<Task<TResult>,Object>, Object)

Tworzy kontynuację, która jest przekazywana informacji o stanie i jest wykonywana po zakończeniu elementu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>,Object>, Object, TaskContinuationOptions)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>,Object>, Object, TaskScheduler)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>>)

Tworzy kontynuację, która jest wykonywana 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 elementu docelowego Task<TResult> .

ContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację, która jest wykonywana zgodnie z warunkiem określonym w continuationOptions.

ContinueWith(Action<Task<TResult>>, TaskContinuationOptions)

Tworzy kontynuację, która jest wykonywana zgodnie z warunkiem określonym w continuationOptions.

ContinueWith(Action<Task<TResult>>, TaskScheduler)

Tworzy kontynuację, która jest wykonywana asynchronicznie po zakończeniu elementu docelowego Task<TResult> .

ContinueWith(Action<Task>)

Tworzy kontynuację, która jest wykonywana asynchronicznie po zakończeniu elementu docelowego Task .

(Odziedziczone po Task)
ContinueWith(Action<Task>, CancellationToken)

Tworzy kontynuację, która odbiera token anulowania i wykonuje asynchronicznie po zakończeniu działania obiektu docelowego Task .

(Odziedziczone po Task)
ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację wykonywaną, gdy zadanie docelowe konkuruje zgodnie z określonym TaskContinuationOptionselementem . 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ę, która jest wykonywana asynchronicznie po zakończeniu elementu docelowego Task . Kontynuacja używa określonego harmonogramu.

(Odziedziczone po Task)
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskContinuationOptions)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskScheduler)

Tworzy kontynuację wykonywaną po zakończeniu działania obiektu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>)

Tworzy kontynuację, która jest wykonywana asynchronicznie po zakończeniu elementu docelowego Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken)

Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu celu Task<TResult> .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w continuationOptionspliku .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskContinuationOptions)

Tworzy kontynuację wykonywaną zgodnie z warunkiem określonym w continuationOptionspliku .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskScheduler)

Tworzy kontynuację wykonywaną asynchronicznie po zakończeniu celu Task<TResult> .

ContinueWith<TResult>(Func<Task,Object,TResult>, Object)

Tworzy kontynuację, która odbiera informacje o stanie dostarczone przez obiekt wywołujący i wykonuje asynchronicznie, gdy element docelowy Task zakończy działanie i zwróci wartość.

(Odziedziczone po Task)
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken)

Tworzy kontynuację, która jest wykonywana asynchronicznie, gdy element docelowy Task zostanie ukończony i zwróci 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ę, która jest wykonywana na podstawie określonych opcji kontynuacji zadania, gdy element docelowy Task zostanie ukończony 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ę, która jest wykonywana na podstawie określonych opcji kontynuacji zadania po zakończeniu elementu docelowego Task . Kontynuacja odbiera informacje o stanie dostarczone przez obiekt wywołujący.

(Odziedziczone po Task)
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskScheduler)

Tworzy kontynuację, która jest wykonywana asynchronicznie po zakończeniu elementu docelowego Task . 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 jest wykonywana asynchronicznie, gdy element docelowy Task<TResult> zostanie ukończony i zwróci wartość.

(Odziedziczone po Task)
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken)

Tworzy kontynuację, która jest wykonywana asynchronicznie, gdy element docelowy Task zostanie ukończony i zwróci wartość. Kontynuacja otrzymuje token anulowania.

(Odziedziczone po Task)
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Tworzy kontynuację, która jest wykonywana 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ę, która jest wykonywana zgodnie z określonymi opcjami kontynuacji i zwraca wartość.

(Odziedziczone po Task)
ContinueWith<TResult>(Func<Task,TResult>, TaskScheduler)

Tworzy kontynuację, która jest wykonywana asynchronicznie, gdy element docelowy Task zostanie ukończony i zwróci 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 element Task, zwalniając wszystkie niezarządzane zasoby.

(Odziedziczone po Task)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetAwaiter()

Pobiera oczekiwany element służący do oczekiwania na ten Task<TResult>element .

GetAwaiter()

Pobiera obiekt awaiter używany do oczekiwania na ten Taskelement .

(Odziedziczone po Task)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
RunSynchronously()

Task Uruchamia synchronicznie TaskSchedulerbieżący element .

(Odziedziczone po Task)
RunSynchronously(TaskScheduler)

Uruchamia je Task synchronicznie w podanym obszarze TaskScheduler .

(Odziedziczone po Task)
Start()

Uruchamia element Task, planując jego wykonanie do bieżącego TaskSchedulerelementu .

(Odziedziczone po Task)
Start(TaskScheduler)

Uruchamia element Task, planując jego wykonanie do określonego TaskSchedulerelementu .

(Odziedziczone po Task)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
Wait()

Czeka na Task zakończenie wykonywania.

(Odziedziczone po Task)
Wait(CancellationToken)

Czeka na Task zakończenie wykonywania. Oczekiwanie kończy się, jeśli token anulowania zostanie anulowany przed ukończeniem zadania.

(Odziedziczone po Task)
Wait(Int32)

Czeka na Task ukończenie wykonywania w ciągu określonej liczby milisekund.

(Odziedziczone po Task)
Wait(Int32, CancellationToken)

Czeka na Task zakończenie wykonywania. Oczekiwanie kończy się, jeśli upłynie interwał limitu czasu lub token anulowania zostanie anulowany przed zakończeniem zadania.

(Odziedziczone po Task)
Wait(TimeSpan)

Oczekuje na Task ukończenie wykonywania w określonym przedziale czasu.

(Odziedziczone po Task)
Wait(TimeSpan, CancellationToken)

Czeka na Task zakończenie wykonywania.

(Odziedziczone po Task)
WaitAsync(CancellationToken)

Pobiera element Task<TResult> , który zostanie ukończony po Task<TResult> zakończeniu lub po żądaniu anulowania określonego CancellationToken .

WaitAsync(CancellationToken)

Pobiera element Task , który zostanie ukończony po Task zakończeniu lub po żądaniu anulowania określonego CancellationToken .

(Odziedziczone po Task)
WaitAsync(TimeSpan)

Pobiera element Task<TResult> , który zostanie ukończony po Task<TResult> zakończeniu lub upływie określonego limitu czasu.

WaitAsync(TimeSpan)

Pobiera element Task , który zostanie ukończony po Task zakończeniu lub upływie określonego limitu czasu.

(Odziedziczone po Task)
WaitAsync(TimeSpan, CancellationToken)

Pobiera element Task<TResult> , który zostanie ukończony po Task<TResult> zakończeniu, po upływie określonego limitu czasu lub po żądaniu anulowania określonego CancellationToken limitu czasu.

WaitAsync(TimeSpan, CancellationToken)

Pobiera element Task , który zostanie ukończony po Task zakończeniu, upływie określonego limitu czasu lub po żądaniu anulowania określonego CancellationToken limitu czasu.

(Odziedziczone po Task)
WaitAsync(TimeSpan, TimeProvider)

Pobiera element Task<TResult> , który zostanie ukończony po Task<TResult> zakończeniu lub upływie określonego limitu czasu.

WaitAsync(TimeSpan, TimeProvider)

Pobiera element Task , który zostanie ukończony po Task zakończeniu lub upływie określonego limitu czasu.

(Odziedziczone po Task)
WaitAsync(TimeSpan, TimeProvider, CancellationToken)

Pobiera element Task<TResult> , który zostanie ukończony po Task<TResult> zakończeniu, po upływie określonego limitu czasu lub po żądaniu anulowania określonego CancellationToken limitu czasu.

WaitAsync(TimeSpan, TimeProvider, CancellationToken)

Pobiera element Task , który zostanie ukończony po Task zakończeniu, upływie określonego limitu czasu lub po żądaniu anulowania określonego CancellationToken limitu czasu.

(Odziedziczone po Task)

Jawne implementacje interfejsu

IAsyncResult.AsyncWaitHandle

Pobiera element WaitHandle , który może sł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

DispatcherOperationWait(Task)

Czeka na zakończenie bazowego DispatcherOperation .

DispatcherOperationWait(Task, TimeSpan)

Czeka na określoną ilość czasu ukończenia bazowego DispatcherOperation .

IsDispatcherOperationTask(Task)

Zwraca wartość wskazującą, czy jest ona Task skojarzona z elementem DispatcherOperation.

AsAsyncAction(Task)

Zwraca środowisko wykonawcze systemu Windows akcję asynchroniczną reprezentującą rozpoczęte zadanie.

AsAsyncOperation<TResult>(Task<TResult>)

Zwraca operację asynchroniczną środowisko wykonawcze systemu Windows, która reprezentuje uruchomione zadanie zwracające 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ż