为了账号安全,请及时绑定邮箱和手机立即绑定

计时器经过时,C#Windows服务中的任务不会记录

计时器经过时,C#Windows服务中的任务不会记录

C#
拉风的咖菲猫 2021-04-30 16:12:45
我已经用C#编写了一个Windows服务,在其中我在OnStart(),OnStop()处调用了一个异步任务,并且每隔30秒就会经过一个计时器滴答声。该任务如下所示:    private async void WriteLog(WorkerLog worker)    {        string x = await Logger.WriteLogAsync(worker);        Logger.WriteError(x);    }我面临的问题是,当调用OnStart时,我可以看到记录器正在记录日志。但是计时器经过的回调未记录。另外,当我从服务浏览器中停止服务时,它也不会记录日志。我已经在没有此异步调用的情况下测试了该服务,该服务会记录每个滴答和OnStop()。任何人都可以指出我的想法,然后再在Windows Service Timer滴答调用中调用异步调用吗?为了了解我的计时器计时器已过时的样子,请执行以下操作:    private void workerTimer_Tick(object sender, ElapsedEventArgs e)    {        // Write code here to do some job depends on your requirement        worker.Message = "Scheduler timer ticked and some job has been done successfully.";        WriteLog(worker);    }在OnStart()中创建的计时器    protected override void OnStart(string[] args)    {        workerTimer = new System.Timers.Timer();        this.workerTimer.Interval = 30000; // every 30 secs        this.workerTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.workerTimer_Tick);        this.workerTimer.Enabled = true;        this.workerTimer.AutoReset = false;        ..............    }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信