【发布时间】:2020-08-29 22:57:57
【问题描述】:
我正在尝试更好地理解 Forms.Timers。 据我了解,计时器是在线程池中的线程上执行的,在这种情况下,您不应从计时器更新表单上的控件(因为这不是创建此控件的线程)。
但是,在 microsoft (https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/run-procedures-at-set-intervals-with-wf-timer-component) 提供的示例中,它们正在从计时器更新控件。
所以,我的问题是,从计时器(没有 control.Invoke 调用)更新控件(如标签)是否有任何问题?
如果不是,为什么不呢? (因为这是线程池中的线程,而不是创建控件的线程)
【问题讨论】:
-
.NET 平台内置了许多
Timer类,位于不同的命名空间中。看看here(向下滚动到绿色的提示部分)。你指的定时器是什么类型的? -
您绝对可以使用 Forms.Timer 更新表单控件。请尝试并查看,如果您遇到特定问题,请返回。
标签: c# multithreading winforms timer