Niedawno miałem rozmowę kwalifikacyjną z pytaniem dotyczącym tego, jak uzyskać wyjątki w wątkach, i odpowiedziałem błędnie. Mam też wyjątki, pisząc try catch poza wątkiem, który napisałem.
W przeszłości, gdy tworzyłem oprogramowanie dla winform, często korzystałem z wątków i miałem dwa sposoby na uzyskanie informacji o wyjątkach:
- Zapisz w wątku try'catch i wywołaj delegata, aby wypisał informacje o wyjątku do pola tekstowego loga oprogramowania.
- Napisz try catch w wątku, wywołaj framework logów i zapisz do pliku.
Nie napisałem też 'try'catch poza wątkiem, więc dlaczego odpowiedziałem źle?
Kod testowy:
Nie uzyskano żadnych informacji o wyjątkach poza wątkiem, a główny wątek umarł, bez wydrukowanego "OK".
Co powinienem zrobić, jeśli chcę uzyskać informacje o wyjątkach wątku w głównym wątku? Możesz użyć eventów, które są faktycznie delegatami.
Tutorial dotyczący wydarzenia:
Kod jest następujący:
(Koniec)
|