BackgroundWorker.CancelAsync Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.