社区
C#
帖子详情
单线程实现类似Timer的间隔处理
dotnetbus
2007-07-31 04:00:01
Timer应该是多线程的,每到一定的时间就触发事件,不会管上一次执行是否成功
时间间隔大概为30秒
现在做法是建立一个线程,然后处理事件,
处理完后sleep 30 秒
问题在于窗体会不再响应,看任务管理器
应用也会显示没有反应
感觉好像性能不高效,有什么好的方法没有?
...全文
244
9
打赏
收藏
单线程实现类似Timer的间隔处理
Timer应该是多线程的,每到一定的时间就触发事件,不会管上一次执行是否成功 时间间隔大概为30秒 现在做法是建立一个线程,然后处理事件, 处理完后sleep 30 秒 问题在于窗体会不再响应,看任务管理器 应用也会显示没有反应 感觉好像性能不高效,有什么好的方法没有?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
neucf
2007-08-01
打赏
举报
回复
用BackgroundWorker 或者 线程池,你的UI就不会死了
dotnetbus
2007-08-01
打赏
举报
回复
现在用的是和hbcbsxw一样
不过如果在UI的一个button事件中用thread = New Threading.Thread(AddressOf 你的函数名字)
那么你的UI就会没有回应了
所以我担心死循环会不会影响到CPU的性能
不过毕竟我还让线程 Sleep 了 30 秒
这个是不是最佳的
xwk789xwk
2007-07-31
打赏
举报
回复
不懂,帮顶
hbcbsxw
2007-07-31
打赏
举报
回复
哦,我忘记了,这个是用vb.net写的;不过c#和这个差不多;大同小异
hbcbsxw
2007-07-31
打赏
举报
回复
呵呵,今天刚好了一个跟这个差不多的东西,拿出来分享一下
thread = New Threading.Thread(AddressOf 你的函数名字)
此处省略........
While True
...........................
System.Threading.Thread.CurrentThread.Sleep(3000)
End While
此处省略........
把你的代码写在这个死循环里面,它就每隔30秒执行一次你想要做的事情啦
Koala_sea
2007-07-31
打赏
举报
回复
我感觉还是用委托比较好些。
通者归来
2007-07-31
打赏
举报
回复
用单独线程比较好。或用线程池。
xuan.ye
2007-07-31
打赏
举报
回复
neucf()
---
同意,调用的应该是一个委托,其他的不一定能执行
neucf
2007-07-31
打赏
举报
回复
看了一下,说几点想法:
1. 不应该在UI线程Sleep 30s,这样会让你的UI无响应。
2. 建议在UI线程外单起一个工作线程,方法可以用
(1) BackgroundWorker类,.NET 提供的专门用于做后台工作的类
(2) 直接new Thread(),效果一样,不过没有BackgroundWorker类那么好控制。
3. 如果用Timer,建议用以下方式试试:
(1) 写一个delegate,将你的操作写在其中
(2) 起一个Timer,每30秒去触发这个delegate,需要注意的是这个delegate最好用异步形式(BeginInvoke)
以上属于个人看法,仅供参考
不依赖窗口的
单线程
Timer
CMy
Timer
类
实现
了不依赖窗口的多事件
timer
,多个
timer
事件均在一个线程中
处理
,重要的是使用方法和windows的WM_
TIMER
使用几乎一致
.NET Framework中定时器
timer
的
单线程
与多线程使用讲解
如果你需要使用规律的时间
间隔
重复执行一些方法,最简单的方式是使用定时器(
timer
)。与下边的例子相比,定时器可以便捷、高效地使用内存和资源: ? 1 2 3 4 5 6 7 new Thread (delegate() { while (enabled) {
java
单线程
任务调度_Java定时任务调度详解
【小宅按】在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券;比如在保证最终一致性的场景中,往往利用定时任务调度进行一些比对工作;比如一些定时需要生成的报表、邮件;比如一些需要定时清理数据的任务等。本篇博客将系统的介绍定时任务调度,会涵盖
Timer
、Sch...
java多线程定时器
Timer
的使用详解
使用过javascript的都知道有两个关于定时的方法:setTimeOut和setInterval方法,可以让一段代码持续性或者规定时间后运行。这样就可以
实现
定时的功能,最经典的应用就是贪吃蛇那条蛇持续性的走动。这里做一下关于定时器使用的一点小结 定时器:
Timer
定时器的任务:
Timer
Task 定时器:
Timer
一种工具,线程用其安排以后在后台线程中执行的任务。可安排任
nodejs
单线程
?非阻塞I/O?异步?
一、多线程与
单线程
像java、python这个可以具有多线程的语言。多线程同步模式是这样的,将cpu分成几个线程,每个线程同步运行。 而node.js采用
单线程
异步非阻塞模式,也就是说每一个计算独占cpu,遇到I/O请求不阻塞后面的计算,当I/O完成后,以事件的方式通知,继续执行计算2。 事件驱动、异步、
单线程
、非阻塞I/O,这是我们听得最多的关于nodejs的介绍。看到上面的关键字,可能我们会好奇: 为什么在浏览器中运行的 Javascript 能与操作系统进行如此底层的交互? nodejs既然是
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章