假设我在一个工作线程上,我想更改几个 UI 元素、一个按钮、一个文本框等。

我需要在每个元素上调用 BeginInvoke 吗? IE。,

  myButton.BeginInvoke(someMethod);
  myTextBox.BeginInvoke(someOtherMethod);

或者有没有办法做一个 BeginInvoke 然后更新多个 UI 元素?谢谢

最佳答案

只需在表单上调用 BeginInvoke 并从那里更新所有控件。

@James Black:我的捷径是添加这样的方法:

private IAsyncResult BeginInvoke(MethodInvoker method) {
    return BeginInvoke((Delegate)method);
}

然后像这样调用它:
BeginInvoke(() => {
    txtName.Text = name;
});

关于c# - 多线程/C# : Can I do a BeginInvoke on multiple UI elements?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4485041/

10-10 23:26