Sdílet prostřednictvím


BackgroundWorker.CancelAsync Metoda

Definice

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.

Platí pro

Viz také