后台任务异步化
This commit is contained in:
		
							parent
							
								
									3333e7f12c
								
							
						
					
					
						commit
						4077501379
					
				@ -28,23 +28,23 @@ namespace Falcon.SugarApi.Test
 | 
			
		||||
            var asyncTask = new BackTaskAsync();
 | 
			
		||||
            Console.WriteLine("启动异步任务");
 | 
			
		||||
            asyncTask.StartAsync(token.Token).Wait();
 | 
			
		||||
            Thread.Sleep(5 * 1000);
 | 
			
		||||
            Thread.Sleep(10 * 1000);
 | 
			
		||||
            Console.WriteLine("停止异步任务");
 | 
			
		||||
            asyncTask.StopAsync(token.Token).Wait();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class BackTaskAsync : BackgroundLongTask
 | 
			
		||||
    public class BackTaskAsync : BackTaskObject
 | 
			
		||||
    {
 | 
			
		||||
        public BackTaskAsync() {
 | 
			
		||||
            this.Log = new TestLog<BackTaskObject>();
 | 
			
		||||
        }
 | 
			
		||||
        public ILogger Log { get; set; }
 | 
			
		||||
 | 
			
		||||
        public override float RunTimespan => 1;
 | 
			
		||||
 | 
			
		||||
        protected async override void Run() {
 | 
			
		||||
        protected async override Task RunAsync() {
 | 
			
		||||
            this.Log.LogInformation($"{DateTime.Now.ToString("HH:mm:ss")}:BackTaskAsync Run!");
 | 
			
		||||
            //Thread.Sleep(3 * 1000);
 | 
			
		||||
            await Task.Delay(new TimeSpan(0,0,3));
 | 
			
		||||
            await Task.CompletedTask;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -76,8 +76,9 @@ namespace Falcon.SugarApi.Test
 | 
			
		||||
            base.OnCompleted(t);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected override void Run() {
 | 
			
		||||
        protected override Task RunAsync() {
 | 
			
		||||
            this.Log.LogInformation($"{DateTime.Now.ToString("HH:mm:ss")}:Test Run!");
 | 
			
		||||
            return Task.CompletedTask;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -13,9 +13,9 @@ namespace Falcon.SugarApi.BackTask
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 要执行的任务
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        protected abstract void Run();
 | 
			
		||||
        protected abstract Task RunAsync();
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 执行时间间隔
 | 
			
		||||
        /// 执行时间间隔,秒
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public abstract float RunTimespan { get; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
@ -46,7 +46,8 @@ namespace Falcon.SugarApi.BackTask
 | 
			
		||||
                OnStart(this);
 | 
			
		||||
                while (!TokenSource.Token.IsCancellationRequested) {
 | 
			
		||||
                    await Task.Delay(TimeSpan.FromSeconds(RunTimespan))
 | 
			
		||||
                    .ContinueWith(wt => { Run(); }).ContinueWith(wt => OnCompleted(this));
 | 
			
		||||
                    .ContinueWith(_ => { RunAsync().Wait(); })
 | 
			
		||||
                    .ContinueWith(_ => OnCompleted(this));
 | 
			
		||||
                }
 | 
			
		||||
                OnStop(this);
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user