Linguaggio

JoinableTaskFactory.DisableProcessing Metodo

Definizione

Impedisce l'esecuzione delle pompe di messaggi filtrate durante le attese sincrone per l'ambiente JoinableTask.

public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation

Valori restituiti

Valore che può essere eliminato quando viene terminata la necessità di eliminare le pompe di messaggi di attesa sincrone. In alternativa, può essere rimosso se il resto di è destinato a disabilitare l'elaborazione JoinableTask .

Eccezioni

Generata quando viene chiamato all'esterno del contesto di un oggetto JoinableTask.

Esempio

Ecco un semplice utilizzo comune di questo metodo:

Di seguito sono riportati altri esempi di come può essere usato:

Commenti

Durante una resa await all'interno di , JoinableTasknon viene mai eseguita alcuna pompa di messaggi indipendentemente dal fatto che questo metodo venga chiamato, ad eccezione di quello interno che consente solo il lavoro pertinente. Quando il codice utente viene eseguito all'interno del JoinableTask delegato o dei relativi chiamato che finisce per richiedere un blocco sincrono del thread principale (ad esempio, conflitti di I/O sincrono o blocchi), questa attesa viene in genere implementata chiamando Wait(IntPtr[], Boolean, Int32) su Current. L'implementazione predefinita di questo metodo consente determinate interruzioni (e.g. COM chiamate RPC), che possono evitare deadlock in determinate situazioni.

La chiamata a questo metodo sostituirà l'implementazione predefinita di Wait(IntPtr[], Boolean, Int32) con una che non consentirà tali interruzioni mentre JoinableTask è attiva e nel controllo di Current. Poiché questo metodo può essere chiamato più volte, questo effetto rimane sulla destinazione JoinableTask fino a quando non vengono eliminati tutti i DisableProcessing() valori restituiti delle chiamate (in qualsiasi ordine). L'effetto si applica solo all'oggetto diretto JoinableTask. Non influisce sui figli o sui genitori.

La disabilitazione dell'elaborazione non ha alcun effetto sui sistemi operativi non Windows.

Se si elimina il valore risultante, verrà ripristinato il comportamento predefinito. I chiamanti non devono mai eliminare questo valore se la finalità consiste nel disabilitare l'elaborazione per il resto dell'esecuzione di tale JoinableTaskvalore.

Si applica a