Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Metodo BackgroundWorker.CancelAsync

Richiede l'annullamento di un'operazione in background in attesa.

Spazio dei nomi:  System.ComponentModel
Assembly:  System (in System.dll)

public void CancelAsync()

Il metodo CancelAsync invia una richiesta di terminazione dell'operazione in background in sospeso e imposta la proprietà CancellationPending su true.

Quando si chiama il metodo CancelAsync, il metodo di lavoro ha la possibilità di interrompere l'esecuzione e uscire. Il codice di lavoro dovrebbe verificare periodicamente che la proprietà CancellationPending sia impostata su true.

Nota di avvisoAttenzione

Tenere presente che il codice nel gestore eventi di DoWork potrebbe terminare la sua attività nel caso di una richiesta di annullamento e che il ciclo di polling potrebbe impedire che la proprietà CancellationPending venga impostata su true. In questo caso, il flag della proprietà Cancelled dell'oggetto System.ComponentModel.RunWorkerCompletedEventArgs nel gestore eventi di RunWorkerCompleted non sarà impostato su true, anche nel caso di una richiesta di annullamento. Questa situazione è definita race condition e rappresenta una problematica diffusa nella programmazione con multithreading. Per ulteriori informazioni sulle problematiche della progettazione con multithreading, vedere Suggerimenti per l'utilizzo del threading gestito.

Nel codice di esempio seguente viene illustrato l'utilizzo del metodo CancelAsync per annullare un'operazione asincrona (in background). Questo esempio di codice fa parte di un esempio più esaustivo fornito per la classe BackgroundWorker.


private void cancelAsyncButton_Click(System.Object sender, 
    System.EventArgs e)
{   
    // Cancel the asynchronous operation.
    this.backgroundWorker1.CancelAsync();

    // Disable the Cancel button.
    cancelAsyncButton.Enabled = false;
}


.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft