Ejemplo n.º 1
0
 private void SendPacket(GXClient client, int delay, GXPacket packet)
 {
     if (ReserveMedia)
     {
         lock (client.SyncCommunication)
         {
             Statistics.PacketSendTime = DateTime.Now;
             if (delay > 0 && Statistics.PacketReceiveTime != DateTime.MinValue)
             {
                 delay -= (int)(DateTime.Now - Statistics.PacketReceiveTime).TotalMilliseconds;
                 if (delay > 0)
                 {
                     if (Tracing && m_OnTrace != null)
                     {
                         m_OnTrace(this, new TraceEventArgs(TraceTypes.Info, string.Format(Resources.Wait0MsBeforeNextPacketIsSend, delay), null));
                     }
                     System.Threading.Thread.Sleep(delay);
                 }
             }
             client.Send(packet, true);
         }
     }
     else
     {
         Statistics.PacketSendTime = DateTime.Now;
         if (delay > 0 && Statistics.PacketReceiveTime != DateTime.MinValue)
         {
             delay -= (int)(DateTime.Now - Statistics.PacketReceiveTime).TotalMilliseconds;
             if (delay > 0)
             {
                 if (Tracing && m_OnTrace != null)
                 {
                     m_OnTrace(this, new TraceEventArgs(TraceTypes.Info, string.Format(Resources.Wait0MsBeforeNextPacketIsSend, delay), null));
                 }
                 System.Threading.Thread.Sleep(delay);
             }
         }
         client.Send(packet, true);
     }
     if (!IsCancelled)
     {
         Statistics.PacketReceiveTime = DateTime.Now;
     }
 }