We have an application written in .net, c#, winforms. We noticed that sometimes when closing the application, the process remains.
I’m not sure how I can reproduce that behavior, so I’m looking for some clues as to why the application wouldn’t exit.
The application uses a bit of background threads. Thread pools. Wondering if that could be the cause. Anything else could have this effect?
It most definitely could be the cause though I cannot be certain that it actually is. One way to test this hypothesis to make sure all threads that have been explicitly created are designated as background threads. This can be done by setting
Thread.IsBackground = truewhich will allow the application to terminate if the main thread ends. If there is at least one thread for whichIsBackground = falsethen the CLR keeps the host process running.