是这样的 ,想做个数据库同步系统。 所以程序启动的时候他要定时执行这两条同步数据库的任务 DoWork() //这里面负责处理数据库的同步任务…. 比如我点击其中一条任务 就 新建一个线程 但是这样怎么进行定时 就是说 产出了这个子线程之后。子线程定时(比如5秒)地去做DoWork() 要是加上Timer 该怎么写代码啊。? |
|
只是启动的时候不用timer吗?
如果是每5秒执一次那就 timer里有一个事件,你事件每次执行那个dowork就行了。把interval设成5秒 |
|
学习一下!
|
|
不能这样 。。我的主界面是不能出现Timer这个的 。必须是创建一个线程之后,由线程去定时地做这个DoWork()
|
|
5分 |
如果是你说的这样的话,那就只能做一个死循环,然后自己sleep(5秒)然后再创建线程,去做DoWork了, 还有一种思路,你了解一下线程监管,用invoke或者beginInvoke去做 |
如果不了解使用Timer,请看msdn,或者多找基本入门书专门看timer使用介绍。
|
|
10分 |
while (true)
{ dowork(); thread.sleep(5000); } 函数取个名字, 然后用线程调用就行了 |
TimerCallback tcb = 你那个dowork; AutoResetEvent autoEvent = new AutoResetEvent(false); Timer stateTimer = new Timer(tcb, autoEvent, 5000/*你说的5秒钟*/, 250/*时间间隔*/); autoEvent.WaitOne(5000, false); |
|
就不用这玩意了Thread thread = new Thread(new ThreadStart(DoWork));
thread.Start(); |
|
+++ |
|
mark,进一步研习
|
|
循环判断与上次获得的时间之差,这个时间差就是间隔,,然后执行线程
|
|
20分 |
DoWork() { while(isStop){ |
5分 |
同上,Thread.sleep(5000)
timer控件又不可见的.你用又没关系的. |