JoinableTaskFactory Klasse

Definition

Eine Factory zum Starten von asynchronen Aufgaben, die Deadlocks migrieren können, wenn die Aufgaben den Hauptthread einer Anwendung benötigen und der Hauptthread selbst möglicherweise auf dem Abschluss einer Aufgabe blockiert.

public ref class JoinableTaskFactory
[Windows::Foundation::Metadata::WebHostHidden]
class JoinableTaskFactory
public class JoinableTaskFactory
type JoinableTaskFactory = class
Public Class JoinableTaskFactory
Vererbung
JoinableTaskFactory
Abgeleitet

Hinweise

Ausführlichere Kommentare finden Sie unter JoinableTaskContext .

Konstruktoren

JoinableTaskFactory(JoinableTaskCollection)

Initialisiert eine neue Instanz der- JoinableTaskFactory Klasse, mit der alle generierten Aufträge der angegebenen Auflistung hinzugefügt werden.

JoinableTaskFactory(JoinableTaskContext)

Initialisiert eine neue Instanz der JoinableTaskFactory-Klasse.

Eigenschaften

Context

Ruft den Aufgabenkontext, dem beigetreten werden kann und zu dem diese Factory gehört, ab.

HangDetectionTimeout

Ruft das Timeout ab oder legt es fest, nach dem keine Aktivität beim synchronen blockieren einen Absturz vorschlägt.

UnderlyingSynchronizationContext

Ruft den zugrunde liegenden SynchronizationContext ab, das den Hauptthread im Host steuert.

Methoden

Add(JoinableTask)

Fügt der anwendbaren Auflistung die angegebene Aufgabe, der beigetreten werden kann, hinzu.

IsWaitingOnLongRunningTask()

Überprüfen Sie, ob der aktuelle joinabletask auf eine Aufgabe mit langer Ausführungszeit wartet.

OnTransitionedToMainThread(JoinableTask, Boolean)

Wird ausgelöst, wenn eine joinfähige Aufgabe einen Übergang zum Haupt Thread abgeschlossen hat.

OnTransitioningToMainThread(JoinableTask)

Wird ausgelöst, wenn eine joinfähige Aufgabe einen Übergang zum Haupt Thread angefordert hat.

PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object)

Sendet eine Nachricht an den angegebenen zugrunde liegenden SynchronizationContext zur Verarbeitung, wenn der Hauptthread frei verfügbar ist.

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

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.

RunAsync(Func<Task>)

Ruft einen Async-Delegaten für den Thread des Aufrufers auf und gibt zurück an den Aufrufer, wenn die asynchrone Methode ergibt. Der asynchrone Delegat wird so aufgerufen, dass Deadlocks minimiert werden, wenn die asynchrone Methode den Haupt Thread erfordert, während der Haupt Thread blockiert wird, während auf den Abschluss der asynchronen Methode gewartet wird.

RunAsync(Func<Task>, JoinableTaskCreationOptions)

Ruft einen Async-Delegaten für den Thread des Aufrufers auf und gibt zurück an den Aufrufer, wenn die asynchrone Methode ergibt. Der asynchrone Delegat wird so aufgerufen, dass Deadlocks minimiert werden, wenn die asynchrone Methode den Haupt Thread erfordert, während der Haupt Thread blockiert wird, während auf den Abschluss der asynchronen Methode gewartet wird.

RunAsync<T>(Func<Task<T>>)

Ruft einen Async-Delegaten für den Thread des Aufrufers auf und gibt zurück an den Aufrufer, wenn die asynchrone Methode ergibt. Der asynchrone Delegat wird so aufgerufen, dass Deadlocks minimiert werden, wenn die asynchrone Methode den Haupt Thread erfordert, während der Haupt Thread blockiert wird, während auf den Abschluss der asynchronen Methode gewartet wird.

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

Ruft einen Async-Delegaten für den Thread des Aufrufers auf und gibt zurück an den Aufrufer, wenn die asynchrone Methode ergibt. Der asynchrone Delegat wird so aufgerufen, dass Deadlocks minimiert werden, wenn die asynchrone Methode den Haupt Thread erfordert, während der Haupt Thread blockiert wird, während auf den Abschluss der asynchronen Methode gewartet wird.

SwitchToMainThreadAsync(Boolean, CancellationToken)

Ruft einen auf, der für den Synchronisierungs Kontext ausgeführt wird, mit dem diese Instanz initialisiert wurde, sodass sowohl Deadlocks als auch erneute eintretungen minimiert werden.

SwitchToMainThreadAsync(CancellationToken)

Ruft einen auf, der für den Synchronisierungs Kontext ausgeführt wird, mit dem diese Instanz initialisiert wurde, sodass sowohl Deadlocks als auch erneute eintretungen minimiert werden.

WaitSynchronously(Task)

Blockiert synchron den aufrufenden Thread für den Abschluss der angegebenen Aufgabe. Bei Ausführung auf den Hauptthread, wird jede gültige Meldungsverteilschleife unterdrückt, während der Thread ausgesetzt ist.

WaitSynchronouslyCore(Task)

Blockiert synchron den aufrufenden Thread für den Abschluss der angegebenen Aufgabe.

Erweiterungsmethoden

Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

Blockiert den aufrufenden (UI-) Thread, bis ein Abbruch Vorgang abgeschlossen ist, der asynchron ausgeführt wird. Wenn der Vorgang zu lange dauert, wird ein optional abbrechbares warte Dialogfeld angezeigt.

Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

Blockiert den aufrufenden (UI-) Thread, bis ein asynchroner Vorgang abgeschlossen ist. Wenn der Vorgang zu lange dauert, wird ein optional abbrechbares warte Dialogfeld angezeigt.

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

Blockiert den aufrufenden (UI-) Thread, bis ein asynchroner Vorgang abgeschlossen ist. Dem Benutzer wird ein Abbruch angeboten.

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

Blockiert den aufrufenden (UI-) Thread, bis ein asynchroner Vorgang abgeschlossen ist. Dem Benutzer wird kein Abbruch angeboten.

Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)
Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)
Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)
Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)
RunAsync(JoinableTaskFactory, VsTaskRunContext, Func<Task>)

Umschließt den Aufruf einer Async-Methode, sodass Sie asynchron ausgeführt werden kann, aber möglicherweise in der Zukunft synchron abgeschlossen (gewartet) werden kann.

RunAsync<T>(JoinableTaskFactory, VsTaskRunContext, Func<Task<T>>)

Umschließt den Aufruf einer Async-Methode, sodass Sie asynchron ausgeführt werden kann, aber möglicherweise in der Zukunft synchron abgeschlossen (gewartet) werden kann.

RunAsyncAsVsTask<T>(JoinableTaskFactory, VsTaskRunContext, Func<CancellationToken,Task<T>>)

Erstellt eine ivstask zum Nachverfolgen eines Abbruch baren asynchronen Vorgangs.

StartOnIdle(JoinableTaskFactory, Action, VsTaskRunContext)

Plant einen Delegaten für die Hintergrund Ausführung im UI-Thread ohne Vererbung eines Anspruchs vom Aufrufer für den UI-Thread.

StartOnIdle(JoinableTaskFactory, Func<Task>, VsTaskRunContext)

Plant einen Delegaten für die Hintergrund Ausführung im UI-Thread ohne Vererbung eines Anspruchs vom Aufrufer für den UI-Thread.

WithPriority(JoinableTaskFactory, VsTaskRunContext)

Erstellt einen JoinableTaskFactory , der die Arbeit mit der angegebenen Visual Studio-Benutzeroberflächen Thread Priorität plant.

WithPriority(JoinableTaskFactory, Dispatcher, DispatcherPriority)

Erstellt einen JoinableTaskFactory , der die Arbeit mit dem angegebenen und dem angegebenen plant Dispatcher DispatcherPriority .

Gilt für

Threadsicherheit

Dieser Typ ist für alle Member Thread sicher.