From 0bcaef13834bdbb7a9bfac4eed15930df1a08ff2 Mon Sep 17 00:00:00 2001 From: falcon <9504402@qq.com> Date: Fri, 8 Apr 2022 12:21:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8E=E5=8F=B0=E9=95=BF?= =?UTF-8?q?=E6=9C=9F=E4=BB=BB=E5=8A=A1OnException=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Falcon.SugarApi/BackTask/BackgroundLongTask.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Falcon.SugarApi/BackTask/BackgroundLongTask.cs b/Falcon.SugarApi/BackTask/BackgroundLongTask.cs index d90abb5..83af172 100644 --- a/Falcon.SugarApi/BackTask/BackgroundLongTask.cs +++ b/Falcon.SugarApi/BackTask/BackgroundLongTask.cs @@ -30,6 +30,10 @@ namespace Falcon.SugarApi.BackTask /// 完成一次执行 /// protected virtual void OnCompleted(BackgroundLongTask t) { } + /// + /// 执行中发生未处理异常 + /// + protected virtual void OnException(BackgroundLongTask t, Exception ex) { } /// /// 用于定期执行任务的委托 @@ -46,8 +50,15 @@ namespace Falcon.SugarApi.BackTask OnStart(this); while (!TokenSource.Token.IsCancellationRequested) { await Task.Delay(TimeSpan.FromSeconds(RunTimespan)) - .ContinueWith(_ => { RunAsync().Wait(); }) - .ContinueWith(_ => OnCompleted(this)); + .ContinueWith(async _ => { + try { + await RunAsync(); + } + catch (Exception ex) { + OnException(this, ex); + } + }) + .ContinueWith(t => { OnCompleted(this); }); } OnStop(this); };