在.NET里编写Windows Service

日期: 2008-06-19 来源:TechTarget中国

  新建一个(VB.NET/C#)项目,选择Windows Service应用..然后在OnStart类里就可以添加代码了.


  如果想实现定时运行,活实时监听的功能,可以用.NET 提供的TIMER类.


  以下是代码片段.


         private void theTimer_Elapsed(object sender,   System.Timers.ElapsedEventArgs e)
  {


  if (!ExCondition())


  { return;


  }


  try


  {


  theTimer.Enabled = false;


  MyTransaction();


  }


  catch(Exception es)


  {


  WriteLog(es.Message);


  }


  theTimer.Enabled = true;


  }


  //检测执行条件


  private bool ExCondition()


  {


  DateTime dtNow = DateTime.Now;


  if(this.currentmode.Equals(“auto”))


  {


  string[] frev = this.freqvalue.Split(’-’);


  switch( this.freq)


  {


  case “2”://2-每小时


  if( (dtNow.Minute == 59)&(dtNow.Second< 30))


  {


  return true;


  }


  break;


  case “4”://4-每天,


  if((dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))


  {


  return true;


  }


  break;


  case “8”://8-每周,


  int we = int.Parse(frev[0].Substring(1,1));


  if((dtNow.DayOfWeek.ToString().Equals(Week[we]))&(dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))


  {


  return true;


  }


  break;


  case “16”://16-每月,


  int mm = int.Parse(frev[0].Substring(1,frev[0].Length-1));


  if((dtNow.Day == mm)&(dtNow.Hour == int.Parse(frev[1]))&(dtNow.Minute == int.Parse(frev[2]))&(dtNow.Second<30))


  {


  return true;


  }


  break;


  default://无触发


  return true;


  break;


  }


  }


  else


  {


  switch(this.startpoint)


  {


  case “0”:


  return true;


  break;


  default:


  string[] st = startpoint.Split(’-’);


  if((dtNow.Hour == int.Parse(st[0]))&(dtNow.Minute ==int.Parse(st[1]))&(dtNow.Second<30))


  {


  return true;


  }


  break;


  }


  }


  return false;


  }
 
  注册你的Windows Service程序.


  用InstallUtil IASserver.exe (这个文件默认在C:WINNTMicrosoft.NETFrameworkv1.1.4322下)


  InstallUtil IASserver.exe


  InstallUtil IASserver.exe /u (卸载)

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐