.NET:Threading and Exceptions
Do handle exceptions in threads. Unhandled exceptions in threads, even background threads, generally terminate the process. There are three exceptions to this rule:
-
A ThreadAbortException is thrown in a thread because Abort was called.
-
An AppDomainUnloadedException is thrown in a thread because the application domain is being unloaded.
-
The common language runtime or a host process terminates the thread.
For more information, see Exceptions in Managed Threads.