多线程:如何指定新创建线程的职责

时间:2011-09-30 18:41:57

标签: .net multithreading visual-studio-2008

我是多线程的新手,我有点困惑!好吧,假设我在我的程序中创建了除主线程之外的另一个线程。当主线程执行计算和其他操作时,该线程应负责更新UI。我的问题是,新创建的线程如何知道它负责更新UI?你怎么指定的?

2 个答案:

答案 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
});