JoinableTaskFactory.Run Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| Run(Func<Task>) |
Führt die angegebene asynchrone Methode zum Abschluss aus, während der aufrufende Thread synchron blockiert wird. |
| Run(Func<Task>, JoinableTaskCreationOptions) |
Führt die angegebene asynchrone Methode zum Abschluss aus, während der aufrufende Thread synchron blockiert wird. |
| Run<T>(Func<Task<T>>, JoinableTaskCreationOptions) |
Führt die angegebene asynchrone Methode zum Abschluss aus, während der aufrufende Thread synchron blockiert wird. |
| Run<T>(Func<Task<T>>) |
Führt die angegebene asynchrone Methode zum Abschluss aus, während der aufrufende Thread synchron blockiert wird. |
Run(Func<Task>)
Führt die angegebene asynchrone Methode 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
Hinweise
Jede Ausnahme, die von der Stellvertretung ausgelöst wird, wird in ihrem ursprünglichen Typ auf den Aufrufer dieser Methode zurückgeworfen.
Wenn die Stellvertretung von einer erwarteten Ausbeute fortgesetzt wird, besteht das Standardverhalten darin, den ursprünglichen Kontext als normale asynchrone Methodenausführung fortzusetzen. Wenn sich der Aufrufer beispielsweise im Hauptthread befand, wird die Ausführung nach einem Warten auf den Hauptthread fortgesetzt. aber wenn er 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 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
- creationOptions
- JoinableTaskCreationOptions
Wird JoinableTaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Gilt für:
Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)
Führt die angegebene asynchrone Methode 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 Vom asynchronen Vorgang zurückgegebene Werttyp.
Parameter
- creationOptions
- JoinableTaskCreationOptions
Wird JoinableTaskCreationOptions verwendet, um das Verhalten der Aufgabe anzupassen.
Gibt zurück
Das Ergebnis des von asyncMethod.
Hinweise
Jede Ausnahme, die von der Stellvertretung ausgelöst wird, wird in ihrem ursprünglichen Typ auf den Aufrufer dieser Methode zurückgeworfen.
Wenn die Stellvertretung von einer erwarteten Ausbeute fortgesetzt wird, besteht das Standardverhalten darin, den ursprünglichen Kontext als normale asynchrone Methodenausführung fortzusetzen. Wenn sich der Aufrufer beispielsweise im Hauptthread befand, wird die Ausführung nach einem Warten auf den Hauptthread fortgesetzt. aber wenn er 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 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 Vom asynchronen Vorgang zurückgegebene Werttyp.
Parameter
Gibt zurück
Das Ergebnis des von asyncMethod.
Hinweise
Jede Ausnahme, die von der Stellvertretung ausgelöst wird, wird in ihrem ursprünglichen Typ auf den Aufrufer dieser Methode zurückgeworfen.
Wenn die Stellvertretung von einer erwarteten Ausbeute fortgesetzt wird, besteht das Standardverhalten darin, den ursprünglichen Kontext als normale asynchrone Methodenausführung fortzusetzen. Wenn sich der Aufrufer beispielsweise im Hauptthread befand, wird die Ausführung nach einem Warten auf den Hauptthread fortgesetzt. aber wenn er in einem Threadpoolthread gestartet wurde, wird er in einem Threadpoolthread fortgesetzt.
Ein Beispiel finden Sie in der Run(Func<Task>) Überladungsdokumentation.