2011-01-21 15 views
10

W prostych słowach:BackgroundWorker RunWorkerCompletedEventArgs.Cancelled zawsze fałszywe

mogę anulować operację poprzez wywołanie metody CancelAsync() na BackgroundWorker, a gdy egzekucja wpada przypadku RunWorkerCompleted, majątek Cancelled na RunWorkerCompletedEventArgs jest fałszywe. Nie mogłem dokładnie określić, kiedy i gdzie powinienem ustawić to na true, ponieważ jest to właściwość EventArgs.

Czy ktoś może mi pomóc? Przykro mi, jeśli to duplikat, ale nie mogłem znaleźć żadnych pytań na ten temat.

Odpowiedz

15

Od MSDN:

odwołanego własnością RunWorkerCompletedEventArgs wskazuje, czy wniosek anulowanie został przetworzony przez operację tła.

Jeśli kod w obsługi zdarzeń DoWork wykrywa żądanie odwołania przez sprawdzenie flagi CancellationPending i ustawienie flagę Anuluj od DoWorkEventArgs true, Odwołany Flaga RunWorkerCompletedEventArgs również zostanie ustawiona na wartość true .

+2

Teraz po prostu czuję się głupio. Zrobiłem czytać temat MSDN w usłudze BackgroundWoker. Ale być może nie czytałem tematu RunWorkerCompletedEventArgs. W każdym razie, bardzo dziękuję za szybką jasną odpowiedź. – Smur

Powiązane problemy