示例#1
0
        private void Dispatcher_NewGroupEvent(object sender, GroupEventEventAgrs args)
        {
            bool flag = false;

            try
            {
                Monitor.Enter(this, ref flag);
                if (args.GroupEvent.Group != null)
                {
                    Group group = this.framework.groupManager.Groups[args.GroupEvent.Group.Id];
                    group.OnNewGroupEvent(args.GroupEvent);
                    List <IGroupListener> list = this.listenerTable[args.GroupEvent.Group.Id];
                    if (list != null)
                    {
                        foreach (IGroupListener current in list)
                        {
                            current.Queue.Enqueue(args.GroupEvent);
                        }
                    }
                }
            }
            finally
            {
                if (flag)
                {
                    Monitor.Exit(this);
                }
            }
        }