public void HandleCommands(int maxCount)
 {
     try {
         for (int i = 0; i < maxCount; ++i)
         {
             if (m_Commands.Count > 0)
             {
                 IMyCommand cmd = null;
                 if (m_Commands.TryPeek(out cmd))
                 {
                     if (null != cmd)
                     {
                         try {
                             if (!cmd.Execute())
                             {
                                 m_Commands.TryDequeue(out cmd);
                             }
                             else
                             {
                                 break;
                             }
                         } catch (Exception ex) {
                             m_Commands.TryDequeue(out cmd);
                             LogSystem.Error("ClientConcurrentCommandProcessor command() throw exception:{0}\n{1}", ex.Message, ex.StackTrace);
                         }
                     }
                     else
                     {
                         m_Commands.TryDequeue(out cmd);
                     }
                 }
             }
             else
             {
                 break;
             }
         }
     } catch (Exception ex) {
         LogSystem.Error("ClientConcurrentCommandProcessor.HandleCommands throw exception:{0}\n{1}", ex.Message, ex.StackTrace);
     }
 }
Example #2
0
 public void Open()
 {
     mode.Execute();
 }