2
更新UI的最佳方式
我有三個類,其中的纖維束的UI類,在MainForm類,我開始一個新的形式在LoginForm類中,執行是什麼mutiThread
new LoginForm.ShowDialog();
,我編寫關於登錄和註銷的代碼,當用戶使用時,我啓動一個新線程來檢查是否需要完成某些操作,並更新數據庫;這裏是一個問題,我不知道如何更新MainForm 中的標籤,我搜索這個問題,他們告訴我我應該使用Delegate.but它真的困惑了我很多因爲他們不在同一個類,所以我不知道如何使用委派橫紗和跨不同 到現在爲止,我的代碼是這樣的 MainForm.cs:
public partial class MainForm : Form
public delegate void testDelegate();
public MainForm()
{
InitializeComponent();
}
public void msg(string s)
{
label.Test = s;
}
}
LoginForm.cs:
JobDoer jD = new JobDoer();
Thread t2 = new Thread(new ThreadStart(jD.run));
t2.Start();
JobDoer:
public void run()
{
//tD();
tD = new MainForm.testDelegate(MainForm.msg);
//this.
Thread.Sleep(1000);
return;
}
接下來應該做什麼? 非常感謝你
UI元素只能由UI線程修改。因此,當您需要修改時,使用調度程序從另一個線程調用UI線程。 – Leri
可以請給我一些演示嗎? –
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx取決於你使用的東西應該保持這種類型的屬性,允許調用UI線程。 – Leri