社区
C#
帖子详情
单线程实现类似Timer的间隔处理
dotnetbus
2007-07-31 04:00:01
Timer应该是多线程的,每到一定的时间就触发事件,不会管上一次执行是否成功
时间间隔大概为30秒
现在做法是建立一个线程,然后处理事件,
处理完后sleep 30 秒
问题在于窗体会不再响应,看任务管理器
应用也会显示没有反应
感觉好像性能不高效,有什么好的方法没有?
...全文
241
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
在编程领域,尤其是在Windows应用程序开发中,计时器(
Timer
)是一种常见的机制,用于执行周期性的...通过分析这些文件,我们可以深入理解其
实现
细节,学习如何在自己的项目中有效地使用这种不依赖窗口的
单线程
Timer
。
.NET Framework中定时器
timer
的
单线程
与多线程使用讲解
如果你需要使用规律的时间
间隔
重复执行一些方法,最简单的方式是使用定时器(
timer
)。与下边的例子相比,定时器可以便捷、高效地使用内存和资源: ? 1 2 3 4 5 6 7 new Thread ...
java
单线程
任务调度_Java定时任务调度详解
【小宅按】在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛,比如某些视频网站,购买...本篇博客将系统的介绍定时任务调度,会涵盖
Timer
、Sch...
nodejs
单线程
?非阻塞I/O?异步?
一、多线程与
单线程
像java、python这个可以具有多线程的语言。多线程同步模式是这样的,将cpu分成几个线程,每个线程同步运行。 而node.js采用
单线程
异步非阻塞模式,也就是说每一个计算独占cpu,遇到I/O请求不...
C#
Timer
类详解
在winform编程中,我们经常会使用
Timer
类,但如何...1.定义在System.Windows.Forms里 (
单线程
) 2.定义在System.Threading.
Timer
类里 (多线程) 3.定义在System.
Timer
s.
Timer
类里 (多线程) System.Windows.Fo
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章