社区
C#
帖子详情
关于winform定时做事的问题
yzhxhwt
2010-08-09 05:17:06
有没有朋友遇到这样的问题。
类似于闹钟的,我在程序里设定了N个时间段,一旦到达设置的某个时间点,程序就去做某件事,我本来的想法是用设置的时间去和系统的时间不停的比较,直到到了那个时间,OK,开始做事,但是后来发现这样很影响性能,我现在的想法是C#能不能让系统给程序上抛一个消息,告诉程序到达这个时间了,可以做某个事了,这样的话会提高很多性能,不知道大家有没有遇到过。
...全文
245
24
打赏
收藏
关于winform定时做事的问题
有没有朋友遇到这样的问题。 类似于闹钟的,我在程序里设定了N个时间段,一旦到达设置的某个时间点,程序就去做某件事,我本来的想法是用设置的时间去和系统的时间不停的比较,直到到了那个时间,OK,开始做事,但是后来发现这样很影响性能,我现在的想法是C#能不能让系统给程序上抛一个消息,告诉程序到达这个时间了,可以做某个事了,这样的话会提高很多性能,不知道大家有没有遇到过。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mars.xj
2010-08-10
打赏
举报
回复
顶 timer
longhair9711
2010-08-10
打赏
举报
回复
还是用定时器吧。。。。。。
yao13675863922
2010-08-10
打赏
举报
回复
设置timer控件就可以了。。。
ghost281536992
2010-08-10
打赏
举报
回复
有个问题想请教下,TIMER和多线程有关系么?为啥总要把TIMER跟多线程联系起来呢。
你提的那个需求就是用timer解决的,就算你另起一个线程,最后还是要用timer解决。
Jessezu
2010-08-10
打赏
举报
回复
用计时器或windows服务
yzhxhwt
2010-08-10
打赏
举报
回复
[Quote=引用 15 楼 ghost281536992 的回复:]
1.如果程序什么都不做,底层凭什么会自动上抛消息,它根本对某个特定时间一点概念都没有,所有的时间点在系统看来都是一样的,它不可能无缘无故在某个特定时间就上抛一个消息,这种信息只能你写程序去获得。
这种靠时间点触发某种逻辑的程序,最好就是timer了,它就是干这个用的,还有比这更好的吗?
2.上抛什么样的消息?windows对消息是有严格规定的,不是随便什么自定义消息都能发的。
……
[/Quote]
你的意思就是我说的意思,我的意思也是在程序里面去获取和设置这个底层提供的接口,关键我现在不知道有没有这个接口。如果用timer的话,不如用多线程了,我程序里现在已经存在9个线程了,不敢再用了
ghost281536992
2010-08-10
打赏
举报
回复
1.如果程序什么都不做,底层凭什么会自动上抛消息,它根本对某个特定时间一点概念都没有,所有的时间点在系统看来都是一样的,它不可能无缘无故在某个特定时间就上抛一个消息,这种信息只能你写程序去获得。
这种靠时间点触发某种逻辑的程序,最好就是timer了,它就是干这个用的,还有比这更好的吗?
2.上抛什么样的消息?windows对消息是有严格规定的,不是随便什么自定义消息都能发的。
yzhxhwt
2010-08-10
打赏
举报
回复
没有可以让底层自动上抛消息的方法?
yzhxhwt
2010-08-10
打赏
举报
回复
[Quote=引用 23 楼 ghost281536992 的回复:]
你说的那种逻辑只是编程人员在需要的情况下人为地添加了一个工作线程,不起timer它照样能工作,跟timer一点关系没有。
如果精确到时间点的话,记下时间差的方法如何能够保证那个点到达了你能发现呢?
比如说你想让程序在12:00的时候做点什么,然后13:00的时候做点什么,难道准备sleep一个小时吗?那大可以把timer的interval设置成一个小时嘛。
[/Quote]
非常感谢你的关注,可能我的表述不是很清楚,看了这篇文章,你应该可以理解我想的了
http://blog.csdn.net/xfantasy/archive/2010/06/19/5680514.aspx
目前问题到此已经解决。非常感谢
ghost281536992
2010-08-10
打赏
举报
回复
你说的那种逻辑只是编程人员在需要的情况下人为地添加了一个工作线程,不起timer它照样能工作,跟timer一点关系没有。
如果精确到时间点的话,记下时间差的方法如何能够保证那个点到达了你能发现呢?
比如说你想让程序在12:00的时候做点什么,然后13:00的时候做点什么,难道准备sleep一个小时吗?那大可以把timer的interval设置成一个小时嘛。
yzhxhwt
2010-08-10
打赏
举报
回复
[Quote=引用 18 楼 ghost281536992 的回复:]
有个问题想请教下,TIMER和多线程有关系么?为啥总要把TIMER跟多线程联系起来呢。
你提的那个需求就是用timer解决的,就算你另起一个线程,最后还是要用timer解决。
[/Quote]
哥们,timer和多线程是要扯到一起的,如果单独的timer,你想想,肯定是需要不停的比对时间,而如果用多线程的话,先记下系统和当前时差,然后用线程去sleep这个时差,就不需要不停的比对了,这样大大提高了效率
周药师
2010-08-10
打赏
举报
回复
計時器 本省就影響性能
用線程吧
ZengHD
2010-08-09
打赏
举报
回复
[Quote=引用 1 楼 jayinit 的回复:]
涉及委托吗
[/Quote]
不涉及,可以直接使用Timer控件,间隔设置长一点就行了
shun_qizi_ran
2010-08-09
打赏
举报
回复
试试让一个后台线程sleep规定时间行不行?
angelshuimo
2010-08-09
打赏
举报
回复
学习中。。。
axzs7878
2010-08-09
打赏
举报
回复
[Quote=引用 1 楼 jayinit 的回复:]
涉及委托吗
[/Quote]
每次都被你抢沙发了! - -!
xxiju203
2010-08-09
打赏
举报
回复
这样的话肯定是要一个定时器去轮询的,推荐用System.Timer
yzhxhwt
2010-08-09
打赏
举报
回复
[Quote=引用 4 楼 chazikai24 的回复:]
引用 3 楼 yzhxhwt 的回复:
感谢楼上2位的关注,其实就把他想像成闹钟就行了,我只是想让系统来上抛事件给我,我不停的读取时间去比对,太耗资源了,3楼说的计划任务啥意思?我是在程序里调用程序里的方法.
3楼的意思是把程序写好之后添加exe到系统的计划任务里,按照设定的时间自动执行。
[/Quote]
这样肯定不行,我的意思A方法调用B方法,不是exe文件
chazikai24
2010-08-09
打赏
举报
回复
[Quote=引用 3 楼 yzhxhwt 的回复:]
感谢楼上2位的关注,其实就把他想像成闹钟就行了,我只是想让系统来上抛事件给我,我不停的读取时间去比对,太耗资源了,3楼说的计划任务啥意思?我是在程序里调用程序里的方法.
[/Quote]
3楼的意思是把程序写好之后添加exe到系统的计划任务里,按照设定的时间自动执行。
yzhxhwt
2010-08-09
打赏
举报
回复
感谢楼上2位的关注,其实就把他想像成闹钟就行了,我只是想让系统来上抛事件给我,我不停的读取时间去比对,太耗资源了,3楼说的计划任务啥意思?我是在程序里调用程序里的方法.
加载更多回复(2)
为什么要用委托
刚学习委托时无论老师怎么开导,我都是一头雾水,不是听不懂,也不是不会写,就是不明白为什么要用委托,看啊不出来一点好处,而且写很多没用的代码,每当这么问老师时,老师总说:用委托会使你的代码更灵活,我的天啊,和没说一样,后来参加工作了两年竟然一直没有用到委托也没什么觉得不妥,直到有一天看到了张子阳的“事件和委托”让我大吃一惊研读了几天终于弄懂了一点事件和委托,这时突然感觉以前写的程序都不是程序,起码不
自动新闻抓取系统
http://www.zowee.cn/blog/blogArticle.aspx?id=2442&userid=2 自动新闻抓取系统,或称新闻小偷,已被很多人在使用,实现方式也多种多样。然而时至今日,设计一个完善的、功能强大的、能有效抓取到优质新闻的抓取系统,在技术实现上日趋复杂,因为有更多的
问题
需要解决。此次飞速的自动新闻系统升级,让我的此种感觉更加强烈,特写
Quartz —— 任务调度
任务调度: 在某个时间点或每隔一段时间 去做某事, 闹钟,计划,计划任务,
定时
邮件....都属于作务调度. 以前用
winform
的 timer 或 js 的 setInterval() 与 setTimeout()也能实现简单的作务调度Quartz框架是java 中任务调度的一优秀解决方案,官网:http://quartz-scheduler.org/Quartz框架三大核心:计划任务:要做的
【转载】Quartz —— 任务调度
任务调度: 在某个时间点或每隔一段时间 去做某事, 闹钟,计划,计划任务,
定时
邮件....都属于作务调度. 以前用
winform
的 timer 或 js 的 setInterval() 与 setTimeout()也能实现简单的作务调度Quartz框架是java 中任务调度的一优秀解决方案,官网:http://quartz-scheduler.org/Quartz框架三大核心:计划任务:要做的
多线程的
问题
和一些学习感悟
写一个小软件的时候碰到了一个
问题
。有一串很耗时的函数需要处理。基本流程如下: private void Sample() { aMethodNeedLongTime();//一个很耗时的计算函数 aMethodNeddLongTimeRefWithUI();//一个很耗时的与UI控件处理相关的函数 } ...
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章