JoinableTaskContextNode.SuppressRelevance Метод

Определение

Скрывает все задачи JoinableTask, с которыми связан вызывающий объект, до тех пор, пока не будет удалено возвращаемое значение.

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

Возвращаемое значение

JoinableTaskContext.RevertRelevance

Значение, которое необходимо удалить, чтобы восстановить видимость в связанном JoinableTask вызывающей стороне, если таковая имеется.

Комментарии

В некоторых случаях Асинхронная работа может быть отключена внутри делегата, предоставленного для выполнения, поэтому работа не имеет привилегий для повторного ввода основного потока до тех пор, пока не Run(Func<Task>) будет возвращен вызов и поток пользовательского интерфейса бездействует. Чтобы асинхронная работа не позволяла автоматически повторно ввести основной поток, заключите код, вызывающий асинхронную задачу, в блок using с вызовом этого метода в качестве выражения.

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

Применяется к