gpt4 book ai didi

C# WinForms :- Why Thread Timer tick event not elapsed when UI is doing some other operation?

转载 作者:行者123 更新时间:2023-11-30 14:11:36 28 4
gpt4 key购买 nike

在我的应用程序 UI 中,我通过 Windows 计时器每 1 秒更新一次网格。

当我在做一些属于另一个窗口窗体的其他 UI 操作时,它不能正常工作(这基本上是使用选项卡式窗体)

我为 Timer_Tick 事件添加了跟踪并登录到文件。

当另一个 UI 操作正在进行时(打开和关闭另一个窗口窗体),我们发现日志数据丢失。 Timer_Tick 此时未击中。

Log Data trace有什么建议...? enter image description here

最佳答案

问题是 UI 在单线程中运行。该线程上任何长时间运行的阻塞操作——比如打开一个表单、运行一些代码以响应按钮点击等——都会阻止计时器触发。这就是单线程编程的本质。

如果您绝对需要每秒运行一次代码,无论 UI 线程中发生了什么,您都需要使用第二个线程。

相关链接:

而且非常重要的是,对于从上述任何一种方式与您的 UI 进行交互:

关于C# WinForms :- Why Thread Timer tick event not elapsed when UI is doing some other operation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19650156/

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