BackgroundWorker.CancelAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyžaduje zrušení čekající operace na pozadí.
public:
void CancelAsync();
public void CancelAsync();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()
Výjimky
Příklady
Následující příklad kódu ukazuje použití CancelAsync metody k zrušení asynchronní ("background") operace. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu BackgroundWorker.
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
Poznámky
CancelAsync odešle žádost o ukončení čekající operace na pozadí a nastaví CancellationPending vlastnost na true.
Při volání CancelAsyncmá vaše metoda pracovního procesu příležitost zastavit jeho spuštění a ukončit. Kód pracovního procesu by měl pravidelně kontrolovat CancellationPending vlastnost a zjistit, zda je nastavena na true.
Upozornění
Mějte na paměti, že váš kód v DoWork obslužné rutině události může dokončit svou práci při vytváření požadavku na zrušení a smyčka dotazování může chybět CancellationPending nastavena na true. V takovém případě Cancelled nebude příznak System.ComponentModel.RunWorkerCompletedEventArgs obslužné RunWorkerCompleted rutiny události nastaven na true, i když byla provedena žádost o zrušení. Tato situace se nazývá stav časování a je běžným zájmem o vícevláknové programování. Další informace o problémech s návrhem vícevláknového formátování najdete v tématu Osvědčené postupy pro spravované vlákno.