C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C#WinForms: – 当UI正在执行其他操作时,为什么没有经过Thread Timer tick事件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序UI中,我每隔1秒通过 Windows计时器更新一个网格.

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

添加了Timer_Tick事件的跟踪并登录文件.

当另一个UI操作正在进行时(打开和关闭一个窗体),我们发现缺少日志数据. Timer_Tick此时没有按下.

 
有什么建议…?

@H_944_16@解决方法
问题是UI在单个线程中运行.在该线程上的任何长时间运行的阻塞操作 – 比如打开表单,运行一些@L_450_11@以响应按钮单击等 – 将阻止计时器触发.这是单线程编程的本质.

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

相关链接

> System.Threading.Thread文档
> System.Threading.Tasks.Task文件
> System.Threading.Timer文档

非常重要的是,要从以上任何一种方式与UI进行交互:

> System.Windows.Forms.Control.Invoke方法文档
> System.Windows.Forms.Control.InvokeRequired财产文件

大佬总结

以上是大佬教程为你收集整理的C#WinForms: – 当UI正在执行其他操作时,为什么没有经过Thread Timer tick事件?全部内容,希望文章能够帮你解决C#WinForms: – 当UI正在执行其他操作时,为什么没有经过Thread Timer tick事件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。