Partilhar via


DispatchSource.Cancel Método

Definição

Cancela de forma assíncrona a fonte de expedição.

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

Comentários

A Cancel() função cancela de forma assíncrona a origem de expedição, impedindo qualquer invocação adicional de seu bloco de manipulador de eventos. O cancelamento não interrompe um bloco de manipulador em execução no momento (não preemptivo). Se uma origem for cancelada antes da primeira vez que for retomada, seu manipulador de eventos nunca será chamado.  (Nesse caso, observe que a origem deve ser retomada antes de ser liberada.)

A IsCanceled função pode ser usada para determinar se a origem especificada foi cancelada.

Quando uma fonte de expedição for cancelada, seu manipulador de cancelamento opcional será enviado para sua fila de destino. O manipulador de cancelamento pode ser especificado por meio de SetCancelHandler(Action). Esse manipulador de cancelamento é invocado apenas uma vez e apenas como uma consequência direta de chamar Cancel().

Importante: um manipulador de cancelamento é necessário para o descritor de arquivo e fontes baseadas em porta mach, a fim de fechar com segurança o descritor ou destruir a porta. Fechar o descritor ou a porta antes da execução do manipulador de cancelamento pode resultar em uma condição de corrida: se um novo descritor for alocado com o mesmo valor que o descritor fechado recentemente enquanto o manipulador de eventos da origem ainda estiver em execução, o manipulador de eventos poderá ler/gravar dados no descritor errado.

Aplica-se a