首页 > 解决方案 > 窗口服务状态显示为正在运行,但未在 c# 中执行该方法

问题描述

参考下面的代码:

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)

标签: c#servicewindow

解决方案


所以你说当 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;
    }

PS 做这项工作 WriteToFile("started open " + DateTime.Now); 当你开始服务?它可能无权写入文件并遇到异常。

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


推荐阅读