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

Proprietà BackgroundWorker.CancellationPending

 

Data di pubblicazione: ottobre 2016

Ottiene un valore che indica se l'applicazione ha richiesto l'annullamento di un'operazione in background.

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

[BrowsableAttribute(false)]
public bool CancellationPending { get; }

Valore proprietà

Type: System.Boolean

true Se l'applicazione ha richiesto l'annullamento di un'operazione in background. in caso contrario, false. Il valore predefinito è false.

Se CancellationPending è true, il CancelAsync metodo è stato chiamato sul BackgroundWorker.

Questa proprietà deve essere utilizzata dal thread di lavoro, che deve periodicamente verificare CancellationPending e interrompere l'operazione in background quando è impostato su true.

Esempio di codice riportato di seguito viene illustrato l'utilizzo della CancellationPending proprietà per ottenere un BackgroundWorker sul relativo stato di annullamento. Questo esempio di codice fa parte di un esempio più esaustivo fornito per la 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);
    }
}

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: