问题是我有某种显示加载动画的启动画面。我有专门的经理来显示和隐藏它。
class Manager
{
private Form CurForm;
Thread curt;
private Manager()
{
curt= new Thread(start);
curt.ApartmentState = ApartmentState.STA;
curt.IsBackground = true;
curt.Start();
}
void start()
{
CurForm = new Animation();
Application.Run(CurForm);
}
public static readonly Manager Active = new Manager();
public static void Show()
{
if (Active.CurForm != null)
{
Active.CurForm.Invoke(new Action(() => { Active.CurForm.Show(); }));
}
}
public static void Hide()
{
if (Active.CurForm != null)
{
Active.CurForm.Invoke(new Action(() => { Active.CurForm.Hide(); }));
}
}
}
我打开了一些模态表单(ShowDialog)。此模式表单不显示在任务栏中。
我可以轻松地将其最小化,然后单击任务栏上的主窗体后,它会在顶部显示模态窗体。
但是当我在加载所有必要数据的同时显示这个加载动画时。
类似的东西(当然这只是一个测试它的示例,在实际应用程序中,加载所有数据和带有大量控件的表单需要很长时间)
public modal()
{
Manager.Show();
InitializeComponent();
Thread.Sleep(5000);
Manager.Hide();
}
当我像上面所说的那样尝试最小化和恢复它时,它不会恢复我的模态表单,而只会显示我的主要不可用表单。不仅如此,它在某些情况下有效,但在某些情况下无效。
有谁知道它为什么会发生或如何解决它?