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); } }
public void Open() { mode.Execute(); }