Questa documentazione è stata archiviata e non viene gestita.

Metodo BackgroundWorker.CancelAsync

Aggiornamento: novembre 2007

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.

Attenzione:

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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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

.NET Framework

Supportato in: 3.5, 3.0, 2.0
Mostra: