2012-12-10 10 views
7

Innym aspektem pytań jest: czy powinienem obsługiwać możliwość zamknięcia formularza podczas kodowania pracownika działającego w tle?Co dzieje się z pracownikiem działającym w tle, który działa po zamknięciu formularza?

Mam na przykład kod, który wykonuje zapytanie SQL (które nie jest odwoływalne) w procesie roboczym tła, a następnie po zakończeniu "pogrubia" daty w kontrolce kalendarza, aby dopasować daty zwrócone z zapytania.

Jestem ciekawy, co pracownik w tle jest przeznaczony do zrobienia w takiej sytuacji? - nie można zwolnić zdarzenia RunWorkerComplete? - ignorowanie wywołań do okna dialogowego w wywołaniu funkcji RunWorkerComplete, ponieważ nie jest to już okno?

Odpowiedz

7

Jeśli formularz, który zamykasz, jest głównym (innymi słowy jedynym) formularzem, wątek roboczy w tle zostanie automatycznie zamknięty wraz z zamknięciem aplikacji.

Jeśli nie jest to główna forma, wątek tła będzie nadal działał. W takim przypadku należy ręcznie przerwać wątek tła, zamykając formularz.

Powiązane problemy