【问题标题】:Window Service status it is appearing as running, But not executing the method in c#窗口服务状态显示为正在运行,但未在 c# 中执行该方法
【发布时间】:2019-12-05 13:26:40
【问题描述】:

参考以下代码:

ChangeResumeformat() 是我想在基本时间执行的方法,但这并没有被采纳。 在调试案例中,我可以轻松地执行该方法并获得结果。 请帮忙。

    public Service1()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    { 
        WriteToFile("started open " + DateTime.Now);
        System.Diagnostics.Debugger.Launch();
        timer.Elapsed += new ElapsedEventHandler(ChangeResumeformat);
        timer.Interval = 100000; //number in milisecinds
        timer.Enabled = true;
    }
    protected override void OnStop()
    {
        //   ChangeResumeformat()
    }
     public void ChangeResumeformat(object source, ElapsedEventArgs e)

【问题讨论】:

  • 你在哪里做的计时器?你到底是怎么调试的
  • 我在 InitializeComponent() 下添加了我的方法;
  • 仍然没有代码制作计时器...
  • timer.Elapsed += new ElapsedEventHandler(ChangeResumeformat); timer.Interval = 100000; //毫秒数 timer.Enabled = true;
  • 不指定事件,则不做计时器

标签: c# service window


【解决方案1】:

所以当 100000 毫秒通过您的服务时,您所说的不是调用“ChangeResumeformat”方法吗?先设置间隔,设置为10000,即10秒,启动服务。

    protected override void OnStart(string[] args)
    { 
        WriteToFile("started open " + DateTime.Now);
        System.Diagnostics.Debugger.Launch();
        timer.Interval = 10000; //number in milisecinds
        timer.Elapsed += new ElapsedEventHandler(ChangeResumeformat);
        timer.Enabled = true;
    }

附:这个工作 WriteToFile("开始打开 ​​" + DateTime.Now);当你开始服务?它可能没有写入文件的权限并遇到异常。

您可以查看事件查看器以获取详细日志

【讨论】:

  • 文件创建我可以写入文件
  • 你在创建定时器实例吗? System.Timers.Timer timer = new System.Timers.Timer();
【解决方案2】:

您需要先创建一个 Timer 实例,然后在 OnStart() 中引用它

创建一个 Timer 对象作为类的成员(使用 System.Timers):

private Timer timer;

在 OnStart 方法中初始化计时器

protected override void OnStart(string[] args)
{ 
    timer = new Timer();
    WriteToFile("started open " + DateTime.Now);
    System.Diagnostics.Debugger.Launch();
    timer.Interval = 100000; //number in milisecinds
    timer.Elapsed += new ElapsedEventHandler(ChangeResumeformat);
    timer.Enabled = true;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多