Лучший способ добиться этого - запустить анимацию в асинхронной задаче, но, соответственно, некоторые ограничения возможны для этого в форме окна, используя:
System.Threading.Thread.Sleep(int milliseconds)
.
Мой всплеск отображается с gif (загрузка)
Например: в вашем конструкторе,
public partial class MainMenu : Form
{
private SplashScreen splash = new SplashScreen();
public MainMenu ()
{
InitializeComponent();
Task.Factory.StartNew(() => {
splash.ShowDialog();
});
Thread.Sleep(2000);
}
Обязательно ставьте Thread.Sleep(int)
после запускановый, не забывайте, что каждое действие, которое вы сделали в этом потоке, должно быть вызвано, например:
void CloseSplash()
{
Invoke(new MethodInvoker(() =>
{
splash.Close();
}));
}
Теперь ваш gif должен работать!