Example #1
0
        protected virtual void Dispose(Boolean disposing)
        {
            if (System.Threading.Interlocked.Exchange(ref disposed, 1) == 1)
            {
                return;
            }

            Unsubscribe();

            if (disposing)
            {
                foreach (var eh in EventHandled.GetInvocationList())
                {
                    EventHandled -= (EventHandler <BusEventArgs <TEvent> >)eh;
                }
                foreach (var eh in EventReceived.GetInvocationList())
                {
                    EventReceived -= (EventHandler <BusEventArgs <TEvent> >)eh;
                }
            }
        }
Example #2
0
        /// <summary>
        /// Releases unmanaged and - optionally - managed resources
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        private void Dispose(Boolean disposing)
        {
            if (Interlocked.Exchange(ref disposed, 1) == 1)
            {
                return;
            }

            if (disposing)
            {
                Unsubscribe();

                foreach (Delegate d in EventHandled.GetInvocationList())
                {
                    EventHandled -= (EventHandler <BusEventArgs <TEvent> >)d;
                }
                foreach (Delegate d in EventReceived.GetInvocationList())
                {
                    EventReceived -= (EventHandler <BusEventArgs <TEvent> >)d;
                }
            }
        }