JoinableTaskContextNode.SuppressRelevance 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.
Verbirgt jeden JoinableTask, dem der Aufrufer zugeordnet wird, bis der zurückgegebene Wert freigegeben ist.
public:
Microsoft::VisualStudio::Threading::JoinableTaskContext::RevertRelevance SuppressRelevance();
public Microsoft.VisualStudio.Threading.JoinableTaskContext.RevertRelevance SuppressRelevance ();
member this.SuppressRelevance : unit -> Microsoft.VisualStudio.Threading.JoinableTaskContext.RevertRelevance
Public Function SuppressRelevance () As JoinableTaskContext.RevertRelevance
Gibt zurück
Ein Wert, der verworfen wird, um den Einblick in den zugeordneten joinabletask des Aufrufers, sofern vorhanden, wiederherzustellen.
Hinweise
In einigen Fällen kann es vorkommen, dass asynchrone Arbeit innerhalb eines Delegaten, der zur Ausführung von bereitgestellt wird, ausgegeben wird, sodass die Arbeit nicht über Berechtigungen zum erneuten eingeben des Haupt Threads verfügt, bis der Run(Func<Task>) Aufruf zurückgegeben wurde und sich der UI-Thread im Leerlauf befindet. Um zu verhindern, dass die asynchrone Arbeit automatisch erneut in den Haupt Thread eintreten kann, müssen Sie den Code, der die asynchrone Aufgabe aufruft, in einem Using-Block umschließen, indem Sie diese Methode als Ausdruck aufrufen.
this.JoinableTaskContext.RunSynchronously(async delegate {
using(this.JoinableTaskContext.SuppressRelevance()) {
var asyncOperation = Task.Run(async delegate {
// Some background work.
await this.JoinableTaskContext.SwitchToMainThreadAsync();
// Some Main thread work, that cannot begin until the outer RunSynchronously call has returned.
});
}
// Because the asyncOperation is not related to this Main thread work (it was suppressed),
// the following await *would* deadlock if it were uncommented.
////await asyncOperation;
});