I have a winform app which has a splash screen in a seperate thread. This app is automatically launched after the user logs in windows. If I creates a new user and logs in windows using this new user for the first time, the app will freeze (deadlock)
after the splash screen disappears and the main window is about to show. If delaying for 30 seconds after login, the app can be launched without problem.
By debugging, I found there are two UI threads, which is the main UI thread and the splash screen thread I think. Below is the stacktrace of one UI thread. According to http://support.microsoft.com/kb/943139, it is a known issue that Windows
Forms application freezes when system settings are changed (including setting changes such as color, theme, desktop size, etc).
What confuses me is that the KB article says "This occurs if a control is created on a thread which doesn't pump messages and the UI thread receives a WM_SETTINGCHANGE message." However, my splash screen has message pump (Application.Run(_splashScreen))
already. So what could be the reason in my case? Is it possible that message pump stops working in the splash screen?
Thanks for any input.