DispatchSource.Cancel Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.