我已经用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
提交
取消