首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > ASP.net教程 > Asp.Net基础教程 > 正文
Google
Timer控件失效的解决
来源:中国自学编程网 2007年10月12日 08:53 网友评论:0条 点击:

  本文介绍了使用VS2005进行开发时Timer控件失效的解决方法,大家在实际开发过程中可以参考一下……

  Timer控件失效的解决

  在Windows 服务不引发计时器事件

  原因:

  我认为windows服务里不能使用System.Windows.Forms的Timer控件,Windows.Forms 计时器组件用于 Windows.Forms 环境。WindowsForms 计时器组件不用于服务器环境,所以要使用System.Timer下的控件。

  解决方案

  这个可以通过修改控件的类型,把所有使用服务器计时器从命名空间 System.Timers 代替 System.Windows.Forms 计时器。如:

Service1.Designer.cs
  1namespace MyNewService
  2{
  3 partial class MyNewService
  4 {
  5 /**//// 
  6 /// 必需的设计器变量。
  7 /// 
  8 private System.ComponentModel.IContainer components = null;
  9
  10 /**//// 
  11 /// 清理所有正在使用的资源。
  12 /// 
  13 /// 如果应释放托管资源,为 true;否则为 false。
  14 protected override void Dispose(bool disposing)
  15 {
  16 if (disposing && (components != null))
  17 {
  18 components.Dispose();
  19 }
  20 base.Dispose(disposing);
  21 }
  22
  23 组件设计器生成的代码#region 组件设计器生成的代码
  24
  25 /**//// 
  26 /// 设计器支持所需的方法 - 不要
  27 /// 使用代码编辑器修改此方法的内容。
  28 /// 
  29 private void InitializeComponent()
  30 {
  31 this.eventLog1 = new System.Diagnostics.EventLog();
  32 this.timer1 = new System.Timers.Timer();
  33 ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
  34 ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
  35 //
  36 // timer1
  37 //
  38 this.timer1.Interval = 2000;
  39 this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
  40 //
  41 // MyNewService
  42 //
  43 this.CanPauseAndContinue = true;
  44 this.CanShutdown = true;
  45 this.ServiceName = "MyNewService";
  46 ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
  47 ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
  48
  49 }
  50
  51 #endregion
  52
  53 private System.Diagnostics.EventLog eventLog1;
  54 private System.Timers.Timer timer1;
  55
  56 }
  57}Service1.cs:
  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Diagnostics;
  6using System.ServiceProcess;
  7using System.Text;
  8
  9namespace MyNewService
  10{
  11 public partial class MyNewService : ServiceBase
  12 {
  13 public MyNewService()
  14 {
  15 InitializeComponent();
  16 if (!System.Diagnostics.EventLog.SourceExists("MySource"))
  17 {
  18 System.Diagnostics.EventLog.CreateEventSource(
  19 "MySource", "MyNewLog");
  20 }
  21 eventLog1.Source = "MySource";
  22 eventLog1.Log = "MyNewLog";
  23 }
  24
  25 protected override void OnStart(string[] args)
  26 {
  27 eventLog1.WriteEntry("In OnStart");
  28 this.timer1.Enabled = true;
  29
  30
  31 }
  32
  33 protected override void OnStop()
  34 {
  35 eventLog1.WriteEntry("In onStop.");
  36 this.timer1.Enabled = false;
  37 }
  38
  39 protected override void OnContinue()
  40 {
  41 eventLog1.WriteEntry("In OnContinue.");
  42 }
  43
  44
  45
  46 private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  47 {
  48 eventLog1.WriteEntry("timer1_Tick." + DateTime.Now.ToString());
  49 }
  50
  51
  52 }
  53}

上一篇:学习ASP.NET中的运算操作符   下一篇:Asp.net编程中的数组学习
收藏此页】【打印】【关闭
 相关文章  我要点评
·ASP.Net中Session失效的一种编程思路
·讲解.Net中给TreeView控件的节点赋id值问题
·输入法下keyup失效的解决方案
·.NET2.0的multiview和wizard控件介绍
·ASP.Net 中HTML控件的学习
·介绍.Net3.0 中跨线程访问控件
·介绍.Net组件开发ajax控件
·解决ASP.NET中GridView控件的隐藏列问题

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】