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

Evento BackgroundWorker.RunWorkerCompleted

Si verifica quando l'operazione in background ha completato, è stato annullato, o è stata generata un'eccezione.

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

public event RunWorkerCompletedEventHandler RunWorkerCompleted

Questo evento viene generato quando DoWork restituisce il gestore eventi.

Se l'operazione viene completata correttamente e il risultato viene assegnato forzatamente DoWork gestore eventi, è possibile accedere al risultato con RunWorkerCompletedEventArgs.Result proprietà.

Error proprietà di System.ComponentModel.RunWorkerCompletedEventArgs indica che è stata generata dall'operazione.

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

Nota di avvisoAttenzione

Tenere presente che il codice in DoWork il gestore eventi può completare il lavoro durante una richiesta di annullamento viene effettuata e il ciclo di polling potrebbe mancare CancellationPending l'utilizzo di un oggetto true. in questo caso, Cancelled flag di System.ComponentModel.RunWorkerCompletedEventArgs in RunWorkerCompleted il gestore eventi non verrà impostato su true, anche se una richiesta di annullamento è stata eseguita. Questa situazione viene chiamata a race condition e rappresenta un problema comune nella programmazione multithreading. Per ulteriori informazioni sui problemi di progettazione multithreading, vedere Suggerimenti per l'utilizzo del threading gestito.

RunWorkerCompleted il gestore eventi deve verificare sempre AsyncCompletedEventArgs.Error e AsyncCompletedEventArgs.Cancelled proprietà prima di accedere a RunWorkerCompletedEventArgs.Result proprietà. Se viene generata un'eccezione o se l'operazione è stata annullata, accedere a RunWorkerCompletedEventArgs.Result la proprietà genera un'eccezione.

Nell'esempio di codice seguente viene illustrato l'utilizzo di RunWorkerCompleted evento per gestire il risultato di un'operazione asincrona. Questo esempio di codice fa parte di un esempio più esaustivo fornito per 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;
}


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.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