BackgroundWorker.CancellationPending BackgroundWorker.CancellationPending BackgroundWorker.CancellationPending BackgroundWorker.CancellationPending Property

정의

애플리케이션에서 백그라운드 작업의 취소를 요청했는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the application has requested cancellation of a background operation.

public:
 property bool CancellationPending { bool get(); };
[System.ComponentModel.Browsable(false)]
public bool CancellationPending { get; }
member this.CancellationPending : bool
Public ReadOnly Property CancellationPending As Boolean

속성 값

애플리케이션에서 백그라운드 작업의 취소를 요청했으면 true이고, 그렇지 않으면 false입니다.true if the application has requested cancellation of a background operation; otherwise, false. 기본값은 false입니다.The default is false.

예제

다음 코드 예제에서는 합니다 CancellationPending 속성을 쿼리는 BackgroundWorker 취소 상태에 대 한 합니다.The following code example demonstrates the use of the CancellationPending property to query a BackgroundWorker about its cancellation state. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 BackgroundWorker 클래스입니다.This code example is part of a larger example provided for the BackgroundWorker class.

// Abort the operation if the user has cancelled.
// 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 );
   }
}
// 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);
    }
}
' 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 Then
    e.Cancel = True
Else
    If n < 2 Then
        result = 1
    Else
        result = ComputeFibonacci(n - 1, worker, e) + _
                 ComputeFibonacci(n - 2, worker, e)
    End If

    ' Report progress as a percentage of the total task.
    Dim percentComplete As Integer = _
        CSng(n) / CSng(numberToCompute) * 100
    If percentComplete > highestPercentageReached Then
        highestPercentageReached = percentComplete
        worker.ReportProgress(percentComplete)
    End If

End If

설명

경우 CancellationPending 됩니다 true, 해당 CancelAsync 메서드가 호출 된는 BackgroundWorker.If CancellationPending is true, then the CancelAsync method has been called on the BackgroundWorker.

이 속성을 위한 데이터베이스 사용 하 여 정기적으로 확인 해야 하는 작업자 스레드에서 CancellationPending 로 설정 된 경우 백그라운드 작업을 중단 하 고 true입니다.This property is meant for use by the worker thread, which should periodically check CancellationPending and abort the background operation when it is set to true.

적용 대상

추가 정보