using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Dfs.WayneChina.CardTrxManager { /// <summary> /// A regular task to work on a designated `Action`, cancellation option offered. /// </summary> public class RegularScanTask { public static async Task Run(Action action, TimeSpan period, CancellationToken ct) { while (!ct.IsCancellationRequested) { await Task.Delay(period, ct); if (!ct.IsCancellationRequested) action(); } } public static Task Run(Action action, TimeSpan period) { return Run(action, period, CancellationToken.None); } } }