社区
C#
帖子详情
关于c#中timer的使用,求助
gotopower
2009-12-10 04:26:00
小弟在写一个程序,该程序有三个功能模块,每个功能模块都需要每10秒钟执行一次,准备用timer进行定时触发,现在问题是,我应该1.用一个timer,把三个功能模块都放在一个事件中触发?
2.用一个timer,把三个功能模块放在三个不同的事件里,让timer每次触发三个不同的事件?
3.用三个timer,每个timer触发一个事件?
请问我应该用哪种方法,用这三种方法,事件被放入消息队列的顺序是一样的吗?
新手求助!
...全文
395
14
打赏
收藏
关于c#中timer的使用,求助
小弟在写一个程序,该程序有三个功能模块,每个功能模块都需要每10秒钟执行一次,准备用timer进行定时触发,现在问题是,我应该1.用一个timer,把三个功能模块都放在一个事件中触发? 2.用一个timer,把三个功能模块放在三个不同的事件里,让timer每次触发三个不同的事件? 3.用三个timer,每个timer触发一个事件? 请问我应该用哪种方法,用这三种方法,事件被放入消息队列的顺序是一样的吗? 新手求助!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
grzx2210
2009-12-10
打赏
举报
回复
多线程
tianliang1
2009-12-10
打赏
举报
回复
感觉用多线程来处理要好些
daixiang
2009-12-10
打赏
举报
回复
为什么要用timer呢
线程多好的
yymycabbage
2009-12-10
打赏
举报
回复
看关联性吧,如果是要并行的话还要使用线程
gotopower
2009-12-10
打赏
举报
回复
[Quote=引用 9 楼 yuanhuiqiao 的回复:]
补充一下,System.Windows.Forms.Timer是单线程计时器,跟其他两种Timer不太一样,需要注意
[/Quote]
多谢,如果用一个timer,把三个功能模块放在三个不同的事件里,让timer每次触发三个不同的事件,这样3个事件是顺次排队执行还是在3个子线程中执行呢?
yuanhuiqiao
2009-12-10
打赏
举报
回复
补充一下,System.Windows.Forms.Timer是单线程计时器,跟其他两种Timer不太一样,需要注意
gotopower
2009-12-10
打赏
举报
回复
你是说前一次未执行完的事件和到点后新触发的事件在两个线程里执行吧,上锁是不是保护自己占有的资源、变量什么的不被另一个线程中的事件修改、更新吗?
[Quote=引用 6 楼 zhulinxiaofeng 的回复:]
看你用的什么Timer了,如果你用的线程定时器system.times.timer,这个是不排队的,到了你的间隔时间系统会启动一个新的线程来执行你的timer注册的方法。
如果你用的是界面定时器,就是组件中的那个,就是排队执行的。
线程定时器,记得要上锁。
[/Quote]
yuanhuiqiao
2009-12-10
打赏
举报
回复
[Quote=引用 4 楼 gotopower 的回复:]
三个模块加起来运行事件不超过10秒,模块之间没有公用的资源。
又有个新问题:如果我一个事件的执行事件超过了10秒,此时timer会中断我的事件,执行下一个事件还是将后续事件排队,等待此次事件执行完?
引用 1 楼 longhair9711 的回复:
首先要看你的每个模块功能是不是有什么关联,然后看每个模块运行的时间是多长。
若很短的话建议用一个timer
若没有关联运行时间又长的话就用三个timer吧
[/Quote]
不中断,后续还是得执行,下一次事件照常开始。
zhulinxiaofeng
2009-12-10
打赏
举报
回复
看你用的什么Timer了,如果你用的线程定时器system.times.timer,这个是不排队的,到了你的间隔时间系统会启动一个新的线程来执行你的timer注册的方法。
如果你用的是界面定时器,就是组件中的那个,就是排队执行的。
线程定时器,记得要上锁。
wl_ldy
2009-12-10
打赏
举报
回复
学习。。。
gotopower
2009-12-10
打赏
举报
回复
三个模块加起来运行事件不超过10秒,模块之间没有公用的资源。
又有个新问题:如果我一个事件的执行事件超过了10秒,此时timer会中断我的事件,执行下一个事件还是将后续事件排队,等待此次事件执行完?
[Quote=引用 1 楼 longhair9711 的回复:]
首先要看你的每个模块功能是不是有什么关联,然后看每个模块运行的时间是多长。
若很短的话建议用一个timer
若没有关联运行时间又长的话就用三个timer吧
[/Quote]
andyalex
2009-12-10
打赏
举报
回复
看你需要了,
每个模块不需要特定更新,就用1个timer方便
如果用3个timer也可以,这要考虑3个模块是否有共用的资源,考虑同步问题,
weiwuchong
2009-12-10
打赏
举报
回复
学习ing
longhair9711
2009-12-10
打赏
举报
回复
首先要看你的每个模块功能是不是有什么关联,然后看每个模块运行的时间是多长。
若很短的话建议用一个timer
若没有关联运行时间又长的话就用三个timer吧
新手
求助
,
C#
窗口
使用
timer
配合progressBar做循环进度条,为什么进度条不动
//进度条 private void pgb
timer
_Tick(object sender, EventArgs e) { if (progressBar1.Value ) { progressBar1.Value
C#
异步编程
C#
异步编程
C#
常见问题解决方案手册(即查即用)
目录
C#
正则表达式
C#
语言之字符串和正则表达式
C#
正则表达式判断IP地址是否...
C#
字符串判断是否相等(忽略大小写)——推荐
使用
c#
怎样取到某个特定字符后面的字符,比如XXXXX#123 和 XXX#12
中
#后面的数字
C#
...
c#
midi窗体_Midi:C#
中
的Windows MIDI库
c#
midi窗体Download MidiSlicer-master - 268.6KB 下载MidiSlicer-master-268.6 KB Download latest from GitHub 从GitHub下载最新版本 介绍 (Introduction) I do some MIDI sequencing and recording and I ...
C#
WinForm 运行久了就内存不足
2、关闭子窗体,
使用
Hide(),打开子窗体,
使用
Show() 3、软件就是ERP、进销存,支持图片,Socket上传下载 4、表格数据多大概这些,然后,软件运行久了,就达到几百M,然后用着用着就突然弹出内存不足,好恐怖,请问...
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章