gpt4 book ai didi

c# - 线程中的 UI 容器?

转载 作者:行者123 更新时间:2023-11-30 22:34:29 25 4
gpt4 key购买 nike

代码中的兄弟。

我正在尝试使我的 WinForms 应用程序成为多线程。在我的后台工作人员的 DoWork 中,我有一个方法可以使用 MethodInvoker 委托(delegate)更改几个控件。我的问题是每次我想从另一个线程更改它时是否必须调用每个控件,或者是否有某种控件容器我可以调用以避免多次调用某些控件?

最佳答案

调用意味着安排您的代码在拥有控件的线程上运行,在所有简单的情况下,该线程对于所有您的控件来说都是完全相同的线程。因此,虽然每次您想要与控件交互时都必须调用,但实际上您可以将任意多的交互“汇集”在一起,并且整个片段只调用一次(这样做会提高性能)。

如果你想“隐藏”你必须写一个类的调用,当被触发时,它会检测到它的属性的变化,并在与你的控件交互的代码上使用 Invoke方式取决于这些属性。所以工作流程是:

  1. 您的工作人员在不调用的情况下修改“ Controller ”的属性。这不会立即生效。
  2. 在某个时候, Controller 被“触发”(可能由工作人员定期触发?)。
  3. Controller 检测(或已经知道)对其属性进行了哪些更改,以及这些更改如何转化为调用控件上的代码。它会调用一个代码块,相应地与控件进行交互。

关于c# - 线程中的 UI 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com