Compartir vía


BackgroundWorker.CancelAsync Método

Definición

Solicita la cancelación de una operación en segundo plano pendiente.

public:
 void CancelAsync();
public void CancelAsync ();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()

Excepciones

Ejemplos

En el ejemplo de código siguiente se muestra el uso del CancelAsync método para cancelar una operación asincrónica ("background"). Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase BackgroundWorker.

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(System.Object sender, 
    System.EventArgs e)
{   
    // Cancel the asynchronous operation.
    this.backgroundWorker1.CancelAsync();

    // Disable the Cancel button.
    cancelAsyncButton.Enabled = false;
}
Private Sub cancelAsyncButton_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles cancelAsyncButton.Click
    
    ' Cancel the asynchronous operation.
    Me.backgroundWorker1.CancelAsync()

    ' Disable the Cancel button.
    cancelAsyncButton.Enabled = False
    
End Sub

Comentarios

CancelAsync envía una solicitud para finalizar la operación en segundo plano pendiente y establece la CancellationPending propiedad trueen .

Cuando se llama a CancelAsync, el método de trabajo tiene la oportunidad de detener su ejecución y salir. El código de trabajo debe comprobar periódicamente la CancellationPending propiedad para ver si se ha establecido en true.

Precaución

Tenga en cuenta que el código del controlador de eventos puede finalizar su trabajo a medida que se realiza una solicitud de cancelación, y es posible que el DoWork bucle de sondeo no CancellationPending se establezca en true. En este caso, la marca de System.ComponentModel.RunWorkerCompletedEventArgs en el RunWorkerCompletedCancelled controlador de eventos no se establecerá trueen , aunque se haya realizado una solicitud de cancelación. Esta situación se denomina condición de carrera y es una preocupación común en la programación multiproceso. Para obtener más información sobre los problemas de diseño multithreading, consulte Procedimientos recomendados para subprocesos administrados.

Se aplica a

Consulte también