Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto

Metodo BackgroundWorker.CancelAsync

Nota: questo metodo è stato introdotto con .NET Framework versione 2.0.

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

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

public void CancelAsync ()
public void CancelAsync ()
public function 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;
}

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

    // Disable the Cancel button.
    cancelAsyncButton.set_Enabled(false);
}

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Supportato in: 2.0

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:
© 2015 Microsoft