亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有一種方法可以在應用程序立即啟動時執行 ExecuteEvery5Min 方法

有沒有一種方法可以在應用程序立即啟動時執行 ExecuteEvery5Min 方法

C#
嗶嗶one 2022-12-24 12:24:41
我正在使用每 5 分鐘Timer調用一段代碼的方法。ExecuteEvery5Min現在我啟動控制臺應用程序,我必須等待 5 分鐘,然后ExecuteEvery5Min執行代碼,然后每 5 分鐘執行一次......有沒有辦法在應用程序啟動并立即ExecuteEvery5Min執行代碼然后每 5 分鐘通過計時器執行一次?using (UtilityClass utilityClass = new UtilityClass()) // To dispose after the use        {            while (true) { }        }public class UtilityClass : IDisposable{    private readonly System.Timers.Timer _Timer;    public UtilityClass()    {        _Timer = new System.Timers.Timer(TimeSpan.FromMinutes(5).TotalMilliseconds)        {            Enabled = true        };        _Timer.Elapsed += (sender, eventArgs) =>        {            ExecuteEvery5Min();        };    }    private void ExecuteEvery5Min()    {        Console.WriteLine($"Every 5 minute at {DateTime.Now}");    }    public void Dispose()    {        _Timer.Dispose();    }}
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

為什么不簡單地在計時器之上調用構造函數中的代碼(立即擁有它)?


    _Timer = new System.Timers.Timer(TimeSpan.FromMinutes(5).TotalMilliseconds)

    {

        Enabled = true

    };


    // add this

    ExecuteEvery5Min();


    _Timer.Elapsed += (sender, eventArgs) =>

    {

        ExecuteEvery5Min();

    };


查看完整回答
反對 回復 2022-12-24
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

如果可以的話,您可以改用System.Threading.Timer它,它具有以下構造函數:

public Timer (System.Threading.TimerCallback callback, object state, int dueTime, int period);

從以下鏈接引用:

dueTime Int32 調用回調之前延遲的時間量,以毫秒為單位。指定 Infinite 以防止計時器啟動。指定零 (0) 以立即啟動計時器。

period Int32 回調調用之間的時間間隔,以毫秒為單位。指定 Infinite 以禁用周期性信號。

PS:它是基于回調的,而不是像你現在使用的那樣基于事件。

請參閱:https ://learn.microsoft.com/en-us/dotnet/api/system.threading.timer.-ctor?view=netframework-4.8


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號