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 ticket to the Main thread 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
Returns JoinableTaskContext.RevertRelevance.
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.