ArtemisComm.PacketProcessing.RaiseSpecificPacketEvents C# (CSharp) Method

RaiseSpecificPacketEvents() static private method

static private RaiseSpecificPacketEvents ( ) : void
return void
        void RaiseSpecificPacketEvents()
        {
            while (!abort)
            {
                while (SpecificPacketQueue.Count > 0)
                {
                    PackageEventArgs pea = SpecificPacketQueue.Dequeue();
                    if (pea != null)
                    {
                        try
                        {
                            string methodName = pea.ReceivedPacket.PacketType.ToString() + "Received";

                            Type t = this.GetType();
                            FieldInfo f = t.GetField(methodName, BindingFlags.Instance | BindingFlags.NonPublic);
                            if (f != null)
                            {
                                var eventDelegate = (MulticastDelegate)f.GetValue(this);
                                if (eventDelegate != null)
                                {
                                    OnEvent(eventDelegate as EventHandler<PackageEventArgs>, pea);
                                }
                                else
                                {

                                }
                            }
                            else
                            {

                            }

                            //EventInfo ev = t.GetEvent(methodName);
                            //MethodInfo m = null;
                            //if (ev!= null)
                            //{
                            //    m = ev.GetRaiseMethod();
                            //    if (m != null)
                            //    {
                            //        object[] parms = new object[] { this, pea };

                            //        m.Invoke(this, parms);
                            //    }
                            //}
                            //else
                            //{
                            //    OnEvent(UndefinedPacketReceived, pea);

                            //}

                        }
                        catch (Exception e)
                        {
                            if (CrashOnException)
                            {
                                throw new PacketProcessingException(e);
                            }
                            else
                            {
                                RaiseExceptionEncountered(e, pea.ID);
                            }
                        }
                    }
                    else
                    {

                    }
                }
                if (!abort)
                {
                    mreSpecificPacketReceived.Reset();
                    mreSpecificPacketReceived.WaitOne();
                }
            }
        }
        //void ProcessSpecificPacket(object state)