Condividi tramite


DispatchSource.Cancel Metodo

Definizione

Annulla in modo asincrono l'origine di invio.

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

Commenti

La Cancel() funzione annulla in modo asincrono l'origine di invio, impedendo qualsiasi ulteriore chiamata del blocco del gestore eventi. L'annullamento non interrompe un blocco del gestore attualmente in esecuzione (non preemptive). Se un'origine viene annullata prima della prima ripresa, il gestore eventi non verrà mai chiamato.  In questo caso, si noti che l'origine deve essere ripresa prima che possa essere rilasciata.

La IsCanceled funzione può essere usata per determinare se l'origine specificata è stata annullata.

Quando un'origine di invio viene annullata, il gestore di annullamento facoltativo verrà inviato alla coda di destinazione. Il gestore di annullamento può essere specificato tramite SetCancelHandler(Action). Questo gestore di annullamento viene richiamato una sola volta e solo come conseguenza diretta della chiamata Cancel().

Importante: è necessario un gestore di annullamento per il descrittore di file e le origini basate su porta mach per chiudere in modo sicuro il descrittore o distruggere la porta. La chiusura del descrittore o della porta prima dell'esecuzione del gestore dell'annullamento può causare una condizione di gara: se un nuovo descrittore viene allocato con lo stesso valore del descrittore chiuso di recente mentre il gestore eventi dell'origine è ancora in esecuzione, il gestore eventi può leggere/scrivere dati nel descrittore errato.

Si applica a