Compartir a través de


DispatchSource.Cancel Método

Definición

Cancela de forma asincrónica el origen de envío.

public void Cancel ();
member this.Cancel : unit -> unit

Comentarios

La Cancel() función cancela de forma asincrónica el origen de distribución, lo que impide cualquier invocación adicional de su bloque de controlador de eventos. La cancelación no interrumpe un bloque de controlador que se está ejecutando actualmente (no preferente). Si se cancela un origen antes de la primera vez que se reanuda, nunca se llamará a su controlador de eventos.  (En este caso, tenga en cuenta que el origen debe reanudarse antes de que se pueda liberar).

La IsCanceled función se puede usar para determinar si se ha cancelado el origen especificado.

Cuando se cancela un origen de distribución, se enviará su controlador de cancelación opcional a su cola de destino. El controlador de cancelación se puede especificar a través de SetCancelHandler(Action). Este controlador de cancelación se invoca solo una vez y solo como consecuencia directa de llamar a Cancel().

Importante: se requiere un controlador de cancelación para los orígenes basados en el descriptor de archivo y el puerto mach para cerrar el descriptor o destruir el puerto de forma segura. Cerrar el descriptor o puerto antes de que se haya ejecutado el controlador de cancelación puede dar lugar a una condición de carrera: si se asigna un nuevo descriptor con el mismo valor que el descriptor cerrado recientemente mientras el controlador de eventos del origen sigue en ejecución, el controlador de eventos puede leer y escribir datos en el descriptor incorrecto.

Se aplica a