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

Metodo BackgroundWorker.ReportProgress (Int32)

Generato ProgressChanged evento.

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

public void ReportProgress(
	int percentProgress
)

Parametri

percentProgress
Tipo: System.Int32
La percentuale, da 0 a 100, l'operazione in background che è completa.

EccezioneCondizione
InvalidOperationException

WorkerReportsProgress la proprietà è impostata su false.

Se è necessario disporre dell'operazione in background di creare rapporti sullo stato di avanzamento, è possibile chiamare ReportProgress metodo per generare ProgressChanged evento. WorkerReportsProgress il valore della proprietà deve essere true, o ReportProgress genererà InvalidOperationException.

È responsabilità dell'implementazione modo significativo di misurazione dello stato di avanzamento di un'operazione in background mentre una percentuale di attività totale ha completato.

La chiamata a ReportProgress il metodo è asincrono e restituisce immediatamente. ProgressChanged il gestore eventi eseguito sul thread che ha creato BackgroundWorker.

Nell'esempio di codice seguente viene illustrato l'utilizzo di ReportProgress metodo per segnalare lo stato di avanzamento di un'operazione asincrona all'utente. Questo esempio di codice fa parte di un esempio più esaustivo fornito per BackgroundWorker classe.


// Abort the operation if the user has canceled.
// Note that a call to CancelAsync may have set 
// CancellationPending to true just after the
// last invocation of this method exits, so this 
// code will not have the opportunity to set the 
// DoWorkEventArgs.Cancel flag to true. This means
// that RunWorkerCompletedEventArgs.Cancelled will
// not be set to true in your RunWorkerCompleted
// event handler. This is a race condition.

if (worker.CancellationPending)
{   
    e.Cancel = true;
}
else
{   
    if (n < 2)
    {   
        result = 1;
    }
    else
    {   
        result = ComputeFibonacci(n - 1, worker, e) + 
                 ComputeFibonacci(n - 2, worker, e);
    }

    // Report progress as a percentage of the total task.
    int percentComplete = 
        (int)((float)n / (float)numberToCompute * 100);
    if (percentComplete > highestPercentageReached)
    {
        highestPercentageReached = percentComplete;
        worker.ReportProgress(percentComplete);
    }
}


.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