我已經(jīng)用C#編寫(xiě)了一個(gè)Windows服務(wù),在其中我在OnStart(),OnStop()處調(diào)用了一個(gè)異步任務(wù),并且每隔30秒就會(huì)經(jīng)過(guò)一個(gè)計(jì)時(shí)器滴答聲。該任務(wù)如下所示: private async void WriteLog(WorkerLog worker) { string x = await Logger.WriteLogAsync(worker); Logger.WriteError(x); }我面臨的問(wèn)題是,當(dāng)調(diào)用OnStart時(shí),我可以看到記錄器正在記錄日志。但是計(jì)時(shí)器經(jīng)過(guò)的回調(diào)未記錄。另外,當(dāng)我從服務(wù)瀏覽器中停止服務(wù)時(shí),它也不會(huì)記錄日志。我已經(jīng)在沒(méi)有此異步調(diào)用的情況下測(cè)試了該服務(wù),該服務(wù)會(huì)記錄每個(gè)滴答和OnStop()。任何人都可以指出我的想法,然后再在Windows Service Timer滴答調(diào)用中調(diào)用異步調(diào)用嗎?為了了解我的計(jì)時(shí)器計(jì)時(shí)器已過(guò)時(shí)的樣子,請(qǐng)執(zhí)行以下操作: 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()中創(chuàng)建的計(jì)時(shí)器 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; .............. }
計(jì)時(shí)器經(jīng)過(guò)時(shí),C#Windows服務(wù)中的任務(wù)不會(huì)記錄
拉風(fēng)的咖菲貓
2021-04-30 16:12:45