async void InitiateAsync() { while (true) { var triggerTime = DateTime.Today + _triggerHour - DateTime.Now; if (triggerTime < TimeSpan.Zero) { triggerTime = triggerTime.Add(new TimeSpan(24, 0, 0)); } await Task.Delay(triggerTime); OnTimeTriggered?.Invoke(); } }
/// <summary> /// פונקציה אסינכרונית הבודקת האם הגיע הזמן להפעיל את הטריגר /// </summary> /// <returns></returns> async Task InitiateAsync() { while (true) { if (LastDateInvoke.Date != DateTime.Now.Date && DateTime.Now.Hour == triggerHour.Hours && DateTime.Now.Minute == triggerHour.Minutes) { LastDateInvoke = DateTime.Now.Date; await Task.Delay(200); OnTimeTriggered?.Invoke(); } await Task.Delay(200); } }