Beispiel #1
0
        public void Notify(IEventDispatcher eventDispatcher, object sender, T args, Action <EventHandler <T>, Exception> executeOnException = null)
        {
            lock (_synclock)
            {
                foreach (var handler in _handlers)
                {
                    EventHandler <T> handler1 = handler;
                    Action           a        = () =>
                    {
                        try
                        {
                            handler1(sender, args);
                        }
                        catch (Exception e)
                        {
                            if (executeOnException != null)
                            {
                                executeOnException(handler1, e);
                            }
                        }
                    };

                    eventDispatcher.Enqueue(a);
                }
            }
        }