JoinableTaskFactory.DisableProcessing Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Impide que las bombas de mensajes filtradas se ejecuten durante esperas sincrónicas para el ambiente JoinableTask.
public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation
Devoluciones
Valor que puede eliminarse cuando finaliza la necesidad de suprimir bombas de mensajes de espera sincrónicas. Como alternativa, se puede descartar si el resto de está JoinableTask diseñado para tener deshabilitado el procesamiento.
Excepciones
Se produce cuando se llama fuera del contexto de un JoinableTask.
Ejemplos
Este es un uso sencillo y común de este método:
A continuación se muestran más ejemplos de cómo se puede usar:
Comentarios
Durante un rendimiento dentro de await , JoinableTaskno se ejecuta ninguna bomba de mensajes independientemente de si se llama a este método, excepto para el interno que permite solo trabajar relevante. Cuando el código de usuario se ejecuta dentro del JoinableTask delegado o sus destinatarios que terminan necesitando un bloque sincrónico del subproceso principal (por ejemplo, E/S sincrónica o contención de bloqueo), esta espera se implementa normalmente mediante una llamada a Wait(IntPtr[], Boolean, Int32) en Current. La implementación predeterminada de este método permite ciertas interrupciones (e.g. COM llamadas RPC), lo que puede evitar interbloqueos en determinadas situaciones.
Al llamar a este método, se reemplazará la implementación predeterminada de Wait(IntPtr[], Boolean, Int32) por una que no permitirá tales interrupciones mientras está JoinableTask activa y en control de Current. Dado que se puede llamar a este método varias veces, este efecto permanece en el destino JoinableTask hasta que se eliminan todos los valores devueltos de las DisableProcessing() invocaciones (en cualquier orden). El efecto solo se aplica al directo JoinableTask. No afecta a ninguno de sus hijos o padres.
Deshabilitar el procesamiento no tiene ningún efecto en los sistemas operativos que no son de Windows.
Al eliminar el valor resultante, se revertirá al comportamiento predeterminado. Los autores de llamadas no necesitan eliminar nunca este valor si la intención es deshabilitar el procesamiento durante el resto de esa JoinableTaskejecución.