コード例 #1
0
        public void Subscribe <TEventArgs>(Action <TEventArgs> callback)
            where TEventArgs : IEventArgs
        {
            var dynamicEventHandler = new DynamicEventHandler <TEventArgs>(callback);
            var eventArgsType       = typeof(TEventArgs);

            if (!events.ContainsKey(eventArgsType))
            {
                events.Add(eventArgsType, new List <Action <object> >());
            }

            events[eventArgsType].Add(dynamicEventHandler.Handle);
        }
コード例 #2
0
        public IEnumerator CreateYieldInstruction <TEventArgs>()
            where TEventArgs : IEventArgs
        {
            var dynamicEventHandler = new DynamicEventHandler <TEventArgs>();
            var eventArgsType       = typeof(TEventArgs);

            if (!events.ContainsKey(eventArgsType))
            {
                events.Add(eventArgsType, new List <Action <object> >());
            }

            events[eventArgsType].Add(dynamicEventHandler.Handle);

            do
            {
                yield return(dynamicEventHandler.Result);
            }while (!dynamicEventHandler.IsCompleted);
        }