BackgroundWorker.CancelAsync Metódus

Definíció

Függőben lévő háttérművelet törlését kéri.

public:
 void CancelAsync();
public void CancelAsync();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()

Kivételek

Példák

Az alábbi példakód bemutatja, hogyan lehet megszakítani egy CancelAsync aszinkron ("háttér") műveletet a metódussal. Ez a példakód egy nagyobb, az BackgroundWorker osztályhoz tartozó példa része.

void cancelAsyncButton_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{  
   // Cancel the asynchronous operation.
   this->backgroundWorker1->CancelAsync();
   
   // Disable the Cancel button.
   cancelAsyncButton->Enabled = false;
}
void cancelAsyncButton_Click(object sender,
    EventArgs e)
{
    // Cancel the asynchronous operation.
    backgroundWorker1.CancelAsync();

    // Disable the Cancel button.
    cancelAsyncButton.Enabled = false;
}
Private Sub cancelAsyncButton_Click(
ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles cancelAsyncButton.Click

    ' Cancel the asynchronous operation.
    backgroundWorker1.CancelAsync()

    ' Disable the Cancel button.
    cancelAsyncButton.Enabled = False

End Sub

Megjegyzések

CancelAsync kérelmet küld a függőben lévő háttérművelet leállítására, és beállítja a tulajdonságot a CancellationPending következőre true: .

Híváskor CancelAsynca feldolgozó metódusnak lehetősége van a végrehajtás leállítására és a kilépésre. A munkavégző kódnak rendszeresen ellenőriznie kell a CancellationPending tulajdonságot, hogy be van-e állítva true.

Figyelmeztetés

Vegye figyelembe, hogy az DoWork eseménykezelőben lévő kód befejezheti a munkát lemondási kérelemként, és előfordulhat, hogy a lekérdezési ciklus nem CancellationPending lesz beállítva true. Ebben az esetben az Cancelled eseménykezelő jelölője System.ComponentModel.RunWorkerCompletedEventArgsRunWorkerCompleted nem lesz beállítva true, még akkor sem, ha lemondási kérelmet tettek. Ezt a helyzetet nevezik versenyfeltételnek , és gyakori probléma a többszálú programozásban. A többszálú kialakítással kapcsolatos problémákról további információt a Felügyelt szálkezelés ajánlott eljárásai című témakörben talál.

A következőre érvényes:

Lásd még