我似乎有正確的順序執行命令的問題,我在我的程序的方法:C#方法,說明以正確的順序不執行
private void GenerateButton_Click(object sender, EventArgs e)
{
Statuslabel.Text = "Working...";
LongMethod();
//Call to another Method of another class which takes 15-20 seconds to execute
Statuslabel.Text = "Done";
}
的問題似乎是,而不是分配「工作「狀態標籤,然後調用LongMethod
,程序似乎首先執行LongMethod()
,然後它將狀態標籤的文本更改爲」工作「一秒鐘,然後立即將其更改爲」完成「。 哦,並且在執行LongMethod()
期間UI被鎖定,因爲程序是單線程的。
我試過線程更早,但對我的生活我不能得到正確的語法,我想:
Thread MyThread = new Thread(LongClass.LongFunction);
Thread MyThread = new Thread(new ThreadStart(LongClass.LongFunction));
哪裏LongClass
是包含LongFunction
作爲一個靜態方法的類。 我會檢查出現在的背景工作者。
如果您在'LongMethod()'之前向'Application.DoEvents()'添加了一個調用,那麼您將使用臨時創可解決此問題。傑森的回答是正確的方法。 –