0
問題是,我有某種啓動畫面顯示加載動畫。 我有特別的經理,顯示和隱藏它。模式形式不能恢復後最小化2 UI線程
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)。此模式窗體不顯示在任務欄中。
我很容易就可以將它最小化,並在任務欄上的主窗體上單擊後,它將顯示頂部的模態窗體。
但是,當我加載所有必要的數據時顯示此加載動畫。
某種類似的(當然,這只是一個樣本,以測試它的工作,並在實際應用它tooks太多的時間來加載所有數據,並有很多的控制形成)
public modal()
{
Manager.Show();
InitializeComponent();
Thread.Sleep(5000);
Manager.Hide();
}
當我試圖最小化和恢復它,就像我上面所說的那樣,它不會恢復我的模態形式,只是顯示我的主要不可用的形式。更重要的是它在某些情況下起作用,但在某些情況下不起作用。
有人知道它爲什麼會發生或如何解決它?
您的** curt **線程不會執行任何操作嗎?這一切都在主線程上運行? – Belogix 2013-03-22 11:38:29
curt它是啓動畫面線程。我需要創建一些獨立的線程來爲我的閃屏設置動畫。 – aleshko 2013-03-22 11:42:01