我有一個帶接口的庫。進度條工作但標籤沒有更新
Public Interface Progress
{
int ProgressValue{get;set;},
string ProgressText{get;set;},
}
圖書館有一個方法創建(啞代碼):
Public Class TestLibrary
{
Progress _progress;
Public void Create()
{
foreach(var n in TestList)
{
// Do Something
_progress.ProgressValue = GetIndex(n);
_progress.ProgressText = "Updating..." + n;
}
}
}
我有一個項目引用該庫並調用Create方法。它甚至實現了界面進度。
Public Class TestProject : Progress
{
public int ProgressValue
{
get{return progressBar1.Value;}
set{progressBar1.Value = value;}
}
public int ProgressText
{
get{return label1.Text;}
set{label1.Text = value;}
}
}
現在,當我運行應用程序,進度條正確的行爲,正確地顯示了進展,但Label1文本並沒有改變。但它在for循環結束時會改變,並顯示循環中的最後一項。任何人都可以幫我解決這個問題嗎?
注意:所有這些代碼都是直接寫入,沒有測試,因爲我現在沒有我的應用程序。對不起,任何語法錯誤。
是否改變*時,它的完成*出於興趣?如果是這樣,這可能只是一個線程問題 - 看起來你在UI線程中做了太多工作。 –
@JonSkeet:是的,它會改變。我編輯了這個問題以反映相同的問題。 – Sandy
這肯定是一個線程問題 - 確保您的「進度」代碼不會在UI線程上運行 – Carsten