Diskuze: Znouvunačtení BackgroundWorker nefunguje CancelAsync()
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Nedal jsi sem kód zpracovávaného v BackgroundWorker-u, proto mám podezření, že sis nezjistil, co přesně ten CancelAsync dělá. Prosuduj si https://docs.microsoft.com/….cancelasync?…
Díky, a budu rád, když mě teď opravíš, jestli to chápu
špatně...
Pokud použiji CancelAsync(), operace se nepřeruší okamžitě, ale stále
běží, dokud v BackgroundWorkerD_DoWork nedojde např. k:
If BackgroundWorkerDum.CancellationPending Then
e.Cancel = True
Return
End If
...což se tedy ASI nechá použít jen ve chvíli, kdy v _DoWorku je např.
nějaký cyklus, kde před každým průchodem ověřím, jestli uživatel
nestiskl např. tlačítko "Cancel", nebo je tam více zdlouhavých operací,
mezi kterými ověřuji, zda nebyly "zrušeny" uživatelem. Bohužel já tam
mám pouze jednu déle trvající operaci, (do níž výše uvedený kód
nevložím), a potřebuji, aby výběrem jiné položky z menu nemusel uživatel
zbytečně čekat na načtení předchozí a běh bgw se ukončil okamžitě,
bez ohledu na to, v jaké je fázi.
Tak mám dojem, že jsem asi nezvolil správný způsob k zastavení bgw. Jdu
tedy dál hledat, ale za typ, budu rád.
Zobrazeno 3 zpráv z 3.