Pěkný den všem,
mám rozpracovanou WinForms aplikaci v C#. Solution je složeno ze 3 oddělených projektů: GUI -> BLL -> DAL.
V GUI mám button, který při kliknutí nastartuje v novém vlákně (backgroundWorker) složitý výpočet z databáze (rozuměj předá režii výpočtu BLL vrstvě, ta kooperuje s DAL vrstvou).
Jelikož výpočet z databáze trvá průměrně 4 minuty, tak jsem chtěl přidat do GUI tlačítko Cancel umožňující uživateli tento proces předčasně ukončit - použiji backgroundWorker.CancelAsync().
Problém je však v tom, že nevím, jak Cancel v metodě DoWork() vyvolat. Režie výpočtu byla totiž předána BLL vrstvě, tak nejbližší doba, kdy se Cancel může provést je až za ty 4 minuty a to je zbytečné, protože BLL už mi vrátí kompletní výsledek.
Děkuji všem za rady.
Fórum › .NET
C# backgroundWorker Cancel
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 45 hostů
Podobná vlákna
BackgroundWorker C# — založil plasmo
BackgroundWorker blokuje UI — založil ondrej39
BackGroundWorker zastavenie — založil Tayson
Zastavenie a znovu spustenie BackGroundWorker — založil Tayson
Kolik mohu spustit BackGroundWorkeru současně? — založil VladislavK
Moderátoři diskuze