我想創建一個包含表單進度條(只是一個GIF圖像)的線程。 我在大的方法之前調用了StartProgress()
。基本上,當線程啓動時,它會加載ProgressBar表單(我想一直顯示,並在不需要時將其隱藏),並且ProgressActive
設置爲true,它應顯示錶單,直到ProgressActive
爲false,然後窗體應該隱藏(直到進度再次激活)。以下是我迄今爲止,但它在我:(凍結了需要線程幫助-C#Windows窗體
public static string ProgressInfo="Test";
public static bool ProgressActive=true;
public static bool ThreadStarted = false;
public static void StartProgress()
{
while (!ThreadStarted)
{
Thread t = new Thread(new ThreadStart(Progress));
ThreadStarted = true;
t.Start();
}
}
public static void Progress()
{
while (ThreadStarted)
{
LoadingBar lb = new LoadingBar();
lb.Show();
lb.TopMost = true;
while (ThreadStarted)
{
if (ProgressActive)
{
lb.Visible = true;
lb.lblLoadingStatus.Text = ProgressInfo;
}
else
{
lb.Visible = false;
}
Thread.Sleep(1000);
}
}
}
編輯:我想要一個靜態類內做到這一點
謝謝,但我使用靜態類,所以「這個」不起作用:( – Spooks 2010-10-21 15:06:49
@ Spooks - 你可能需要考慮讓這個靜態類只用於你的工作進程,讓它暴露並且事件發生,然後在(UI線程)主持你的應用的主表單中使用這個事件。 – Doug 2010-10-21 15:29:37
聽起來像是一個好主意。線程t =新的線程(新的線程啓動(進度)); 這是否創建一個新的工作進程(不消耗UI線程)? – Spooks 2010-10-21 15:43:10