ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
[TOC] # 说明 各个插件的定时器可以相对独立也可以形成队列 # 添加计时器 通常情况下我们会在插件的Runner.OnStart里增加定时任务 ``` public void OnStart() { Builder.AutoMaper(); IPlugin.AddOnTimerQueue(OnTimer, 3000); // 2022-5-14 新增 var targetTime = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")) - DateTime.Now; IPlugin.AddOnTimerQueue(OnTimer, TimeSpan.FromDays(1), targetTime); Console.WriteLine("插件被启动!"); } public void OnTimer() { Console.WriteLine("This is Plugin Demo OnTimer "); } ``` AddOnTimerQueue 的构成如下 ``` ///queueName 队列名称 ///onTimerDelegate 代理函数 ///interval 循环间隔毫秒数 void AddOnTimerQueue( PluginOnTimerDelegate onTimerDelegate, int interval = 1000); ``` ``` ///delayms 延迟TimeSpan void AddOnTimerQueue( PluginOnTimerDelegate onTimerDelegate, TimeSpan interval, TimeSpan delayms) ``` # 删除计时器 ``` //从default队列中删除OnTimer代理 IPlugin.RemoveOnTimerQueue(OnTimer); ``` # 独立计时器 一个类只能创建一个定时任务,如果重复创建会被覆盖 插件重启会自动清理计时器