c# - 多线程/C# : Can I do a BeginInvoke on multiple UI elements?

标签 c# wpf winforms multithreading

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

我是否需要对每个元素调用 BeginInvoke?即,

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

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

最佳答案

不,这不是必需的。除非您的应用程序正在运行多个消息循环(极不可能并且您肯定知道它是否是),那么调用 BeginInvoke 的哪个控件根本无关紧要;它所做的只是将委托(delegate)和参数传递到一个队列中,该队列作为消息循环的一部分进行处理。严格来说,与之交互的控件与您调用 BeginInvoke 的控件之间不需要有任何关系。

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

相关文章:

c# - 设置 WPF ImageSource 的透明度(相当于 GDI Matrix33 = 0.5f)?

c# - 无法加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform。 (来自 HRESULT : 0x80131040) 的异常

c# - string.empty 和 string.isnullorempty

c# - 以无边界形式绘制夹具

c# - 如何在 C# 的 ListView 中添加图像?

c# - 如何将不同的CSS类应用到asp :panels in different ItemTemplate?

c# - 快速检查 C# 命名空间

c# - 为什么窗口的卸载事件不会在 WPF 中触发?

wpf - 将选定的行事件连接到 mvvmlight 命令

c# - 在 WPF 中为 ToggleButton OnMouseOver 的文本添加下划线