我試圖更新TextBox.Text顯示從1到10與1秒的內部與下面的代碼。我不明白爲什麼文字更新爲10之前,我雖然Thread.sleep代碼(1000)應該屬於由Dispatcher.BeginInvoke創建一個獨立的後臺線程10秒,整個UI睡覺。如何在BeginInvoke Thread.Sleep
我的代碼有什麼問題?
Thread t1 = new Thread(new ThreadStart(
delegate()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new Action(delegate()
{
for (int i = 1; i < 11; i++)
{
mytxt1.Text = "Counter is: " + i.ToString();
Thread.Sleep(1000);
}
}));
}));
t1.Start();
你很可能不使用單獨的後臺線程。我很確定這一點,因爲如果你這樣做了,你會得到一個錯誤,說mytxt1是從一個不同的線程訪問的,而不是它創建的。如何解決這個問題?請參閱本教程:http://www.dreamincode.net/forums/topic/246911-c%23-multi-threading-in-a-gui-environment/ – 2pietjuh2