System.Threading.Timer定时器无法触发

mlxsx 2006-11-10 02:43:37
定时器触发不了,代码帖出来了,前辈给指点指点!

using System;
using System.Threading;

namespace ConsoleApplication1
{

public class Class12
{
private System.Threading.Timer tmrRecv;
private int lTemp=0;
public Class12()
{}

private void fun2(object state)
{
lTemp++;
Console.WriteLine(lTemp);
}


public static void Main()
{

Class12 ccl=new Class12();

TimerCallback tmrCallBack=new TimerCallback(ccl.fun2);
ccl.tmrRecv=new System.Threading.Timer(tmrCallBack,null,0,4);

}
}
}
...全文
400 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hplyl 2007-04-16
  • 打赏
  • 举报
回复
学习一下
liujia_0421 2006-11-10
  • 打赏
  • 举报
回复
不好意思,说错了,我和你说的timer还不一样...

你的程序有个问题,为什么会没有触发呢?

其实已经触发了,只不过你的程序在执行到:
ccl.tmrRecv=new System.Threading.Timer(tmrCallBack,null,0,4);
之后程序就退出了,所以看不到效果.

这样改下试试...

加上一句Console.Read();试试,即改为:
public static void Main()
{

Class12 ccl=new Class12();

TimerCallback tmrCallBack=new TimerCallback(ccl.fun2);
ccl.tmrRecv=new System.Threading.Timer(tmrCallBack,null,0,4);
     Console.Read();
}

是不是就能看到效果了?


mlxsx 2006-11-10
  • 打赏
  • 举报
回复
public Timer(
TimerCallback callback,
object state,
int dueTime,
int period
);

System.Threading.Timer(tmrCallBack,null,0,4),那个0好象就是表示直接启动,4就表示触发时间啊?

那该怎么修改了?

ccl.tmrRecv后面点不出enable属性了呀?

liujia_0421 2006-11-10
  • 打赏
  • 举报
回复
设置Enable属性为True即可...

还有时间间隔....

我第一次用也遇到过...
jacobwc 2006-11-10
  • 打赏
  • 举报
回复
设置了timer的enabled=true
还有间隔时间了?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧