社区
C#
帖子详情
这样的Timer该如何实现?
dxbamboo
2010-10-28 02:11:32
我在主窗体里有一个很复杂的数据运算,可以看成一个很大的for循环。
我想在数据运算时,每隔1s改变下主窗体上的一个label的背景颜色。
请教大家,该如何做呢?
我用了timer控件,和System.Timers.Timer。在数据运算时,都不能更新label。
谢谢
...全文
119
8
打赏
收藏
这样的Timer该如何实现?
我在主窗体里有一个很复杂的数据运算,可以看成一个很大的for循环。 我想在数据运算时,每隔1s改变下主窗体上的一个label的背景颜色。 请教大家,该如何做呢? 我用了timer控件,和System.Timers.Timer。在数据运算时,都不能更新label。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dxbamboo
2010-10-28
打赏
举报
回复
谢谢楼上,我用了backgroundworker来实现了。显示可以更新了。
但出现了另外一个问题,在我的放在backgroundwroker里的有个对剪贴板操作,在新线程里面无法操作。
这个问题该如何解决呢?
ywj157
2010-10-28
打赏
举报
回复
楼上xx_lzj的代码我没看懂!~~
我想,先不直接说代码,而是描述下实现过程。
我的理解:你的主程序在执行一个类似于For循环的操作,也就是一个死循环操作,希望每隔一段时间更新程序界面上某个控件(label)的属性。
那么,我的理解,你需要使用多线程来完成这个事情。CPU同时只做一个事情,你都让他(主程序所在的线程)执行计算的死循环了,在循环结束前,是不会做别的事情的。
使用多线程的法子有很多,楼上的使用UI方面的委托应该是一种方法,但我没用过——希望楼上有空能给我发个完整资料学习下。^_^
至于这个多线程怎么做~~我只会相对复杂的操作,就先不说代码了,只说思路。
我的思路是:
(1)把纯数字计算过程放在一个函数中,开一个线程执行这个函数。
(2)主线程,就是主程序窗口有一个timer。
(3)循环计算过程中,插入一个暂停N毫秒当前线程的操作。 如 当前线程.Sleep(10)。让你的主线程能有机会执行,执行其timer的事件。
loveyan52112
2010-10-28
打赏
举报
回复
但是随机整数范围要控制好,不要大于你的数组长度啊
loveyan52112
2010-10-28
打赏
举报
回复
这有什么难。你定义一个Color类型的数组,装一些你要的颜色进去,每隔一秒去随机产生一个随机整数,用来当做数组下标,在将Color数组中取出的颜色付给Label,但是时间空间要用Thread来控制以免阻塞当前进程,否则会很卡
ydlcom
2010-10-28
打赏
举报
回复
application doevent()搞定
xx_lzj
2010-10-28
打赏
举报
回复
这个问题讨论过多次:
private void timer1_Elapsed(.....)
{
this.Invoke(new UpdateUICallBack(UpdateUI));
}
private delegate void UpdateUICallBack();
private void UpdateUI()
{
// labelColorChange;
}
兔子-顾问
2010-10-28
打赏
举报
回复
如果ui线程被占用,你无法更新,只能主动的绘制窗体。你不妨把占用时间长的独立个线程来处理,让界面可以响应。
寒冰2046
2010-10-28
打赏
举报
回复
意思是说,你的运算需要很长的时间,比如说超过2秒?
Timer
实现
1. webkit中
timer
实现
的框架类图
1.1
Timer
Heap其实就是一个容器,管理一个一个的
Timer
1.2 Thread
Timer
s 相当于整个
timer
模块的管理者,负责调度Shared
Timer
并且操作
Timer
Heap
1.3 Shared
Timer
是平台相关的一个类 源码如下:
view plaincopy to clipboardprint?·········10········20··
glibc
timer
的
实现
我之所以去了解glibc的
timer
实现
我因为我们在开发一个微内核的操作系统,作为一个新的操作系统,为了考虑生态一定要去兼容POSIX接口,在
实现
timer
相关接口时去调研了下,各种操作系统的
timer
实现
,当我看到gligc中的
timer
实现
时,说实话我惊讶了,比我想象的要简单,这个简单并不是说
timer
的
实现
简单,是它的
实现
对内核的依赖的功能简单。选择glibc的
实现
来移植到我们的新操作系统的原因主要有两点: 第一:该
timer
的
实现
是纯用户态
实现
。 第二:对内核的依赖简单,错略分析了该
实现
,它只依赖条
JavaScript
Timer
实现
前言:最近开始接触flex,比起javascript,感觉as3的
Timer
类甚是强大。而javascript只有裸体的setTimeout,setInternval。要
实现
稍微复杂一点的功能,稍微没有底子的程序员就会把代码写的很乱。 ok,不废话了,
实现
一个javascript的
Timer
吧比起as3的
Timer
类,功能上略有改动
timer
2.src.js /**
Timer
的底层
实现
原理?
是 Java 中用于定时任务调度的基础工具类,其底层
实现
基于。插入任务(按时间排序)wait(剩余时间)
webkit
Timer
实现
1. webkit中
timer
实现
的框架类图 1.1
Timer
Heap其实就是一个容器,管理一个一个的
Timer
1.2 Thread
Timer
s 相当于整个
timer
模块的管理者,负责调度Shared
Timer
并且操作
Timer
Heap 1.3 Shared
Timer
是平台相关的一个类 源码如下: [cpp] view pla
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章