Freigeben über


JoinableTaskFactory.Run Methode

Definition

Überlädt

Run(Func<Task>)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

Run(Func<Task>, JoinableTaskCreationOptions)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

Run<T>(Func<Task<T>>)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

Run(Func<Task>)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task> -> unit
Public Sub Run (asyncMethod As Func(Of Task))

Parameter

asyncMethod
Func<Task>

Die auszuführende asynchrone Methode.

Hinweise

Jede vom Delegaten ausgelöste Ausnahme wird im ursprünglichen Typ an den Aufrufer dieser Methode zurückgegeben.

Wenn der Delegat aus einem ergebenden Await fortgesetzt wird, besteht das Standardverhalten darin, im ursprünglichen Kontext wie bei der Ausführung einer normalen asynchronen Methode fortzusetzen. Wenn sich der Aufrufer beispielsweise im Standard Threads befand, wird die Ausführung nach einem Await im Standard Thread fortgesetzt. Wenn er jedoch in einem Threadpoolthread gestartet wurde, wird er in einem Threadpoolthread fortgesetzt.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Gilt für:

Run(Func<Task>, JoinableTaskCreationOptions)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> unit
Public Sub Run (asyncMethod As Func(Of Task), creationOptions As JoinableTaskCreationOptions)

Parameter

asyncMethod
Func<Task>

Die auszuführende asynchrone Methode.

creationOptions
JoinableTaskCreationOptions

Die JoinableTaskCreationOptions, die verwendet werden, um das Verhalten der Aufgabe zu ändern.

Gilt für:

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task<'T>> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T)), creationOptions As JoinableTaskCreationOptions) As T

Typparameter

T

Der Werttyp, der vom asynchronen Vorgang zurückgegebenen wird.

Parameter

asyncMethod
Func<Task<T>>

Die auszuführende asynchrone Methode.

creationOptions
JoinableTaskCreationOptions

Die JoinableTaskCreationOptions, die verwendet werden, um das Verhalten der Aufgabe zu ändern.

Gibt zurück

T

Das Ergebnis des von asyncMethodzurückgegebenen Tasks.

Hinweise

Jede vom Delegaten ausgelöste Ausnahme wird im ursprünglichen Typ an den Aufrufer dieser Methode zurückgegeben.

Wenn der Delegat aus einem ergebenden Await fortgesetzt wird, besteht das Standardverhalten darin, im ursprünglichen Kontext wie bei der Ausführung einer normalen asynchronen Methode fortzusetzen. Wenn sich der Aufrufer beispielsweise im Standard Threads befand, wird die Ausführung nach einem Await im Standard Thread fortgesetzt. Wenn er jedoch in einem Threadpoolthread gestartet wurde, wird er in einem Threadpoolthread fortgesetzt.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Gilt für:

Run<T>(Func<Task<T>>)

Führt die angegebene asynchrone Methode bis zum Abschluss aus, während der aufrufende Thread synchron blockiert wird.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task<'T>> -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T))) As T

Typparameter

T

Der Werttyp, der vom asynchronen Vorgang zurückgegebenen wird.

Parameter

asyncMethod
Func<Task<T>>

Die auszuführende asynchrone Methode.

Gibt zurück

T

Das Ergebnis des von asyncMethodzurückgegebenen Tasks.

Hinweise

Jede vom Delegaten ausgelöste Ausnahme wird im ursprünglichen Typ an den Aufrufer dieser Methode zurückgegeben.

Wenn der Delegat aus einem ergebenden Await fortgesetzt wird, besteht das Standardverhalten darin, im ursprünglichen Kontext wie bei der Ausführung einer normalen asynchronen Methode fortzusetzen. Wenn sich der Aufrufer beispielsweise im Standard Threads befand, wird die Ausführung nach einem Await im Standard Thread fortgesetzt. Wenn er jedoch in einem Threadpoolthread gestartet wurde, wird er in einem Threadpoolthread fortgesetzt.

Ein Beispiel finden Sie in der Run(Func<Task>) Überladungsdokumentation.

Gilt für: