我是多线程的新手,我有点困惑!好吧,假设我在我的程序中创建了除主线程之外的另一个线程。当主线程执行计算和其他操作时,该线程应负责更新UI。我的问题是,新创建的线程如何知道它负责更新UI?你怎么指定的?
答案 0 :(得分:3)
只允许一个线程更新UI,这是主线程。您可以使用BackgroundWorker执行辅助工作。它可以“报告进度”或“完成工作”,并在这些事件上将消息传递回主线程以完成工作。
答案 1 :(得分:2)
只有UI线程可以更新UI。
如果您在另一个线程中,则需要将其传递给UI线程。
string newText = "New Text Here"; //Your thread
this.Invoke((MethodInvoker)delegate {
Label1.Text = newText; // UI thread
});