Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Conceals any JoinableTask the caller is associated with until the returned value is disposed.
Namespace: Microsoft.VisualStudio.Threading
Assembly: Microsoft.VisualStudio.Threading (in Microsoft.VisualStudio.Threading.dll)
Syntax
'Declaration
Public Function SuppressRelevance As JoinableTaskContext.RevertRelevance
public JoinableTaskContext.RevertRelevance SuppressRelevance()
public:
JoinableTaskContext::RevertRelevance SuppressRelevance()
member SuppressRelevance : unit -> JoinableTaskContext.RevertRelevance
public function SuppressRelevance() : JoinableTaskContext.RevertRelevance
Return Value
Type: Microsoft.VisualStudio.Threading.JoinableTaskContext.RevertRelevance
A JoinableTaskContext.RevertRelevance to dispose of when you want to restore visibility into the caller's associated JoinableTask, if any.
Remarks
In some cases asynchronous work may be spun off inside a delegate supplied to Run so that the work does not have privileges to re-enter the Main thread until the Run call has returned and the UI thread is idle. To prevent the asynchronous work from automatically being allowed to re-enter the Main thread, wrap the code that calls the asynchronous task in a using block with a call to this method as the expression.
Examples
this.JobContext.RunSynchronously(async delegate {
using(this.JobContext.SuppressRelevance()) {
var asyncOperation = Task.Run(async delegate {
// Some background work.
await this.JobContext.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;
});
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.