| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System;using System.Threading.Tasks;using Microsoft.Extensions.Logging;namespace MediaBrowser.Common.Events{    /// <summary>    /// Class EventHelper.    /// </summary>    // TODO: @bond Remove    public static class EventHelper    {        /// <summary>        /// Fires the event.        /// </summary>        /// <param name="handler">The handler.</param>        /// <param name="sender">The sender.</param>        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>        /// <param name="logger">The logger.</param>        public static void QueueEventIfNotNull(EventHandler handler, object sender, EventArgs args, ILogger logger)        {            if (handler != null)            {                Task.Run(() =>                {                    try                    {                        handler(sender, args);                    }                    catch (Exception ex)                    {                        logger.LogError(ex, "Error in event handler");                    }                });            }        }        /// <summary>        /// Queues the event.        /// </summary>        /// <typeparam name="T">Argument type for the <c>handler</c>.</typeparam>        /// <param name="handler">The handler.</param>        /// <param name="sender">The sender.</param>        /// <param name="args">The args.</param>        /// <param name="logger">The logger.</param>        public static void QueueEventIfNotNull<T>(EventHandler<T> handler, object sender, T args, ILogger logger)        {            if (handler != null)            {                Task.Run(() =>                {                    try                    {                        handler(sender, args);                    }                    catch (Exception ex)                    {                        logger.LogError(ex, "Error in event handler");                    }                });            }        }    }}
 |