StartupTrigger.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Threading.Tasks;
  3. namespace MediaBrowser.Common.ScheduledTasks
  4. {
  5. /// <summary>
  6. /// Class StartupTaskTrigger
  7. /// </summary>
  8. public class StartupTrigger : ITaskTrigger
  9. {
  10. public int DelayMs { get; set; }
  11. public StartupTrigger()
  12. {
  13. DelayMs = 3000;
  14. }
  15. /// <summary>
  16. /// Stars waiting for the trigger action
  17. /// </summary>
  18. /// <param name="isApplicationStartup">if set to <c>true</c> [is application startup].</param>
  19. public async void Start(bool isApplicationStartup)
  20. {
  21. if (isApplicationStartup)
  22. {
  23. await Task.Delay(DelayMs).ConfigureAwait(false);
  24. OnTriggered();
  25. }
  26. }
  27. /// <summary>
  28. /// Stops waiting for the trigger action
  29. /// </summary>
  30. public void Stop()
  31. {
  32. }
  33. /// <summary>
  34. /// Occurs when [triggered].
  35. /// </summary>
  36. public event EventHandler<EventArgs> Triggered;
  37. /// <summary>
  38. /// Called when [triggered].
  39. /// </summary>
  40. private void OnTriggered()
  41. {
  42. if (Triggered != null)
  43. {
  44. Triggered(this, EventArgs.Empty);
  45. }
  46. }
  47. }
  48. }