Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Evento BackgroundWorker.RunWorkerCompleted

 

Data di pubblicazione: ottobre 2016

Si verifica quando l'operazione in background è stata completata, annullata o ha generato un'eccezione.

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

public event RunWorkerCompletedEventHandler RunWorkerCompleted

Questo evento viene generato quando il DoWork gestore eventi restituisce.

Se l'operazione ha esito positivo e il relativo risultato viene assegnato il DoWork gestore dell'evento, è possibile accedere al risultato tramite la RunWorkerCompletedEventArgs.Result proprietà.

Il Error proprietà System.ComponentModel.RunWorkerCompletedEventArgs indica che l'operazione è stata generata un'eccezione.

Il Cancelled proprietà System.ComponentModel.RunWorkerCompletedEventArgs indica se una richiesta di annullamento è stata elaborata dall'operazione in background. Se il codice nel DoWork gestore rileva una richiesta di annullamento controllando il CancellationPending flag e impostazione di Cancel flag di System.ComponentModel.DoWorkEventArgs per true, il Cancelled flag di System.ComponentModel.RunWorkerCompletedEventArgs anche verrà impostato su true.

System_CAPS_cautionAttenzione

Tenere presente che il codice nel DoWork gestore dell'evento potrebbe terminare il proprio lavoro nel caso di una richiesta di annullamento e il ciclo di polling potrebbe impedire CancellationPending viene impostata su true. In questo caso, il Cancelled flag di System.ComponentModel.RunWorkerCompletedEventArgs nel RunWorkerCompleted gestore dell'evento viene impostato su true, anche se è stata effettuata una richiesta di annullamento. Questa situazione viene denominata una race condition e costituisce un problema comune nella programmazione multithreading. Per ulteriori informazioni sulla progettazione multithreading problemi, vedere Managed Threading Best Practices.

Il RunWorkerCompleted gestore eventi è consigliabile controllare sempre la AsyncCompletedEventArgs.Error e AsyncCompletedEventArgs.Cancelled proprietà prima dell'accesso di RunWorkerCompletedEventArgs.Result proprietà. Se è stata generata un'eccezione o se è stato annullato l'operazione, l'accesso di RunWorkerCompletedEventArgs.Result proprietà genera un'eccezione.

Esempio di codice riportato di seguito viene illustrato l'utilizzo di RunWorkerCompleted eventi per gestire il risultato di un'operazione asincrona. Questo esempio di codice fa parte di un esempio più esaustivo fornito per la BackgroundWorker classe.

// This event handler deals with the results of the
// background operation.
private void backgroundWorker1_RunWorkerCompleted(
    object sender, RunWorkerCompletedEventArgs e)
{
    // First, handle the case where an exception was thrown.
    if (e.Error != null)
    {
        MessageBox.Show(e.Error.Message);
    }
    else if (e.Cancelled)
    {
        // Next, handle the case where the user canceled 
        // the operation.
        // Note that due to a race condition in 
        // the DoWork event handler, the Cancelled
        // flag may not have been set, even though
        // CancelAsync was called.
        resultLabel.Text = "Canceled";
    }
    else
    {
        // Finally, handle the case where the operation 
        // succeeded.
        resultLabel.Text = e.Result.ToString();
    }

    // Enable the UpDown control.
    this.numericUpDown1.Enabled = true;

    // Enable the Start button.
    startAsyncButton.Enabled = true;

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

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 2.0
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: