EventHelper.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using MediaBrowser.Model.Logging;
  2. using System;
  3. using System.Threading.Tasks;
  4. namespace MediaBrowser.Common.Events
  5. {
  6. /// <summary>
  7. /// Class EventHelper
  8. /// </summary>
  9. public static class EventHelper
  10. {
  11. /// <summary>
  12. /// Fires the event.
  13. /// </summary>
  14. /// <param name="handler">The handler.</param>
  15. /// <param name="sender">The sender.</param>
  16. /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
  17. /// <param name="logger">The logger.</param>
  18. public static void QueueEventIfNotNull(EventHandler handler, object sender, EventArgs args, ILogger logger)
  19. {
  20. if (handler != null)
  21. {
  22. Task.Run(() =>
  23. {
  24. try
  25. {
  26. handler(sender, args);
  27. }
  28. catch (Exception ex)
  29. {
  30. logger.ErrorException("Error in event handler", ex);
  31. }
  32. });
  33. }
  34. }
  35. /// <summary>
  36. /// Queues the event.
  37. /// </summary>
  38. /// <typeparam name="T"></typeparam>
  39. /// <param name="handler">The handler.</param>
  40. /// <param name="sender">The sender.</param>
  41. /// <param name="args">The args.</param>
  42. /// <param name="logger">The logger.</param>
  43. public static void QueueEventIfNotNull<T>(EventHandler<T> handler, object sender, T args, ILogger logger)
  44. {
  45. if (handler != null)
  46. {
  47. Task.Run(() =>
  48. {
  49. try
  50. {
  51. handler(sender, args);
  52. }
  53. catch (Exception ex)
  54. {
  55. logger.ErrorException("Error in event handler", ex);
  56. }
  57. });
  58. }
  59. }
  60. /// <summary>
  61. /// Fires the event.
  62. /// </summary>
  63. /// <param name="handler">The handler.</param>
  64. /// <param name="sender">The sender.</param>
  65. /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
  66. /// <param name="logger">The logger.</param>
  67. public static void FireEventIfNotNull(EventHandler handler, object sender, EventArgs args, ILogger logger)
  68. {
  69. if (handler != null)
  70. {
  71. try
  72. {
  73. handler(sender, args);
  74. }
  75. catch (Exception ex)
  76. {
  77. logger.ErrorException("Error in event handler", ex);
  78. }
  79. }
  80. }
  81. /// <summary>
  82. /// Fires the event.
  83. /// </summary>
  84. /// <typeparam name="T"></typeparam>
  85. /// <param name="handler">The handler.</param>
  86. /// <param name="sender">The sender.</param>
  87. /// <param name="args">The args.</param>
  88. /// <param name="logger">The logger.</param>
  89. public static void FireEventIfNotNull<T>(EventHandler<T> handler, object sender, T args, ILogger logger)
  90. {
  91. if (handler != null)
  92. {
  93. try
  94. {
  95. handler(sender, args);
  96. }
  97. catch (Exception ex)
  98. {
  99. logger.ErrorException("Error in event handler", ex);
  100. }
  101. }
  102. }
  103. }
  104. }