Timer应该是多线程的,每到一定的时间就触发事件,不会管上一次执行是否成功时间间隔大概为30秒
现在做法是建立一个线程,然后处理事件,
处理完后sleep 30 秒问题在于窗体会不再响应,看任务管理器
应用也会显示没有反应
感觉好像性能不高效,有什么好的方法没有?
现在做法是建立一个线程,然后处理事件,
处理完后sleep 30 秒问题在于窗体会不再响应,看任务管理器
应用也会显示没有反应
感觉好像性能不高效,有什么好的方法没有?
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
联系方式:Q64180940(请清楚注明业务还是技术咨询) 全天在线
==================================================================
1. 不应该在UI线程Sleep 30s,这样会让你的UI无响应。
2. 建议在UI线程外单起一个工作线程,方法可以用
(1) BackgroundWorker类,.NET 提供的专门用于做后台工作的类
(2) 直接new Thread(),效果一样,不过没有BackgroundWorker类那么好控制。
3. 如果用Timer,建议用以下方式试试:
(1) 写一个delegate,将你的操作写在其中
(2) 起一个Timer,每30秒去触发这个delegate,需要注意的是这个delegate最好用异步形式(BeginInvoke)以上属于个人看法,仅供参考
---
同意,调用的应该是一个委托,其他的不一定能执行
thread = New Threading.Thread(AddressOf 你的函数名字)此处省略........
While True
...........................
System.Threading.Thread.CurrentThread.Sleep(3000)
End While此处省略........
把你的代码写在这个死循环里面,它就每隔30秒执行一次你想要做的事情啦
不过如果在UI的一个button事件中用thread = New Threading.Thread(AddressOf 你的函数名字)
那么你的UI就会没有回应了
所以我担心死循环会不会影响到CPU的性能
不过毕竟我还让线程 Sleep 了 30 秒这个是不是最佳的