欢迎光临

木子屋

标题: Windows服务中Timer组件Tick无法触发解决方法

作者: dnawo

日期: 2008-09-06 00:46 AM

分类: 网络技术

内容: 具体原因，微软自称是Framework的bug，但是无论是windows窗体中timer还是组件中的timer都是继承自System.Windows.Form.Timer，并不是我们需要的System.Timers，下边例子中我们来手工创建继承自System.Timers 的timer：
复制内容到剪贴板 程序代码public Service1()
{
InitializeComponent();

System.Timers.Timer t = new System.Timers.Timer(200);//实例化Timer类，设置间隔时间为10000毫秒；
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件；
t.AutoReset = true;//设置是执行一次（false）还是一直执行(true)；
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件；

}
public void theout(object source, System.Timers.ElapsedEventArgs e)
{
SqlConnection conn = new SqlConnection("Server=.;UID=eaglesoft;PWD=password;DataBase=exchange");
SqlCommand comm = new SqlCommand("Insert INTO op_album(album_name,album_score,album_picscr) VALUES('1','2','3')", conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
这样就可以触发Elapsed事件了，注册服务一切正常。
附：Visual Studio 中3种计时器说明
System.Windows.Forms.Timer：基于windows 的计时器，运行于Windows 窗体程序中。
System.Timers.Timer：基于服务的计时器，运行于服务器环境中。
System.Threading.Timer：基于线程的计时器，使用回调方法而不是使用事件，并由线程池线程提供支持。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.207 ms

返回

标题: Windows服务中Timer组件Tick无法触发解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.207 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.254 ms

返回