首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

windows简单服务,为什么小弟我的定时器里的代码无效

2012-08-07 
windows简单服务,为什么我的定时器里的代码无效?代码如下:public FileResetService(){InitializeComponent

windows简单服务,为什么我的定时器里的代码无效?
代码如下:
  public FileResetService()
  {
  InitializeComponent();
  TimeDo();
  }

  protected override void OnStart(string[] args)
  {
  //TimeDo();
   
  }

  /// <summary>
  /// /重新启动
  /// </summary>
  public void Reset()
  {
  //关闭进程
  System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("FileResultColection");
  foreach (System.Diagnostics.Process p in process)
  {
  p.Kill();
  }
  //启动程序
  System.Diagnostics.Process.Start(@"F:\Work\快分系统\VS2008新仪器数据采集\DataAcquisitionSolution\FileResultColection\bin\FileResultColection.exe");
  }
  public void TimeDo()
  {
  //System.Timers.Timer aTimer = new System.Timers.Timer();
  //aTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimeEvent);
  timer1.Enabled = true;
  timer1.Interval = 1000;
  }
  ///// <summary>  
  ///// 定时器触发事件  
  ///// </summary>  
  ///// <param name="source"></param>  
  ///// <param name="e"></param>  
  //private void TimeEvent(object source, System.Timers.ElapsedEventArgs e)
  //{
   
  //}
  public void WirteLogWithName(string msg, string filePath)
  {
  for (int i = 0; i < 5; i++)
  {
  try
  {
  System.IO.File.AppendAllText(filePath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Info>" + msg + System.Environment.NewLine, System.Text.Encoding.UTF8);
  break;
  }
  catch (System.Exception e)
  {
  System.Threading.Thread.Sleep(500);
  continue;
  }
  }
  }
  protected override void OnStop()
  {
   
  }

  private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  {
  int intHour = e.SignalTime.Hour;
  int intMinute = e.SignalTime.Minute;
  int intSecond = e.SignalTime.Second;
  int iHour = 12;
  int iMinute = 47;
  int iSecond = 00;
  // 设置重启启动的的时间  
  if (intHour == iHour && intMinute == iMinute && intSecond == iSecond)
  {
  Reset();

  }
  iMinute = 48;
  if (intHour == iHour && intMinute == iMinute && intSecond == iSecond)
  {
  Reset();
  }
  iMinute = 49;
  if (intHour == iHour && intMinute == iMinute && intSecond == iSecond)
  {
  Reset();
  }
  WirteLogWithName("重启启动**********************", Environment.CurrentDirectory.ToString() + @"\log\" + "ResetLog.log");


  }
  }
}

在winform程序里代码没有问题 可以触发。。但是服务里就是不行。。无法重启。。不知道代码问题出在哪里,求教大人指点。。服务应该是装好了的。我的电脑服务里面也有并且已启动,进程里也有,但就是无法触发我的代码。。高人指点啊。。。最近少上论坛 ,没什么分,但还是请大家多多指教哈,小弟感激不尽。。。

[解决办法]
timer1.Enabled = true;
timer1.Interval = 1000;

换个位置

[解决办法]
从结果找原因
1. timer1.Enabled = false;
2. 在需要触发事件的位置注册事件

断点调试,看看到底在哪儿出问题了。
[解决办法]
你的服务器需要有“与桌面交互”的权限。
[解决办法]
在winform程序里代码没有问题 可以触发。。但是服务里就是不行。。无法重启
很明显了 权限问题 不存在代码问题

热点排行