C#WinForms: – 当UI正在执行其他操作时,为什么没有经过Thread
发布时间:2020-12-16 09:48:21 所属栏目:百科 来源:网络整理
导读:在我的应用程序UI中,我每隔1秒通过 Windows计时器更新一个网格. 当我正在做一些其他UI操作属于另一个窗体表格时,它无法正常工作(这基本上是使用选项卡式表单) 我添加了Timer_Tick事件的跟踪并登录到文件. 当另一个UI操作正在进行时(打开和关闭另一个窗体),我
在我的应用程序UI中,我每隔1秒通过
Windows计时器更新一个网格.
当我正在做一些其他UI操作属于另一个窗体表格时,它无法正常工作(这基本上是使用选项卡式表单) 我添加了Timer_Tick事件的跟踪并登录到文件. 当另一个UI操作正在进行时(打开和关闭另一个窗体),我们发现缺少日志数据. Timer_Tick此时没有按下. ? 解决方法
问题是UI在单个线程中运行.在该线程上的任何长时间运行的阻塞操作 – 比如打开表单,运行一些代码以响应按钮单击等 – 将阻止计时器触发.这是单线程编程的本质.
如果您绝对需要每秒运行一次代码,无论UI线程中发生了什么,您都需要使用第二个线程. 相关链接: > 非常重要的是,要从以上任何一种方式与UI进行交互: > (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |