假设我在一个工作线程上,我想更改几个 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/