CHa*_*ike 3 c# multithreading timer winforms
在我的应用程序 UI 中,我每 1 秒通过 Windows Timer 更新一次网格。
当我在做其他一些属于其他 windows 窗体的 UI 操作时,它不能正常工作(这基本上是使用选项卡式窗体)
我为 Timer_Tick 事件添加了跟踪并登录到文件。
我们发现在另一个 UI 操作(打开和关闭另一个窗体)时丢失了日志数据。Timer_Tick 此时未命中。
有什么建议...?

问题是 UI 在单个线程中运行。该线程上的任何长时间运行的阻塞操作——比如打开一个表单、运行一些代码以响应按钮点击等——将阻止计时器触发。这就是单线程编程的本质。
如果您绝对需要每秒运行一次代码,无论 UI 线程中发生了什么,您都需要使用第二个线程。
相关链接:
而且很重要的是,与从上述任何你的UI交互: