I am working on a .NET winform app. Once the application starts I display a splash page. While the splash page is displayed I run through a series of actions. For instance: I want to make sure they are connected to the internet, make sure they are dialed into the company VPN, make sure specific files exist on their laptop, etc. If everything is ok, I want to move to the login screen. If not, I want to go to an error screen which will describe the issues.
My question: what is the best way to handle the entire process above? I would assume that multi-threading would be a good strategy to separate the background actions from the splash ui. Maybe use a threadpool? Should I possible use a timer too... so I can trigger an error if one of the actions gets hung-up? Just looking for some best practices...