Пример #1
0
 /// <summary>
 /// Occurs when merger gets message to merge flm
 /// </summary>
 /// <param name="merMessage">Message from worker</param>
 /// <returns>True is merging process should be ended</returns>
 private bool toMergeMessageEvent(MergerMessage merMessage)
 {
     try
     {
         while (true)
         {
             if (m_threadsCount < m_maxThreadsCount)
             {
                 Thread thread = new Thread(() => updateMessageEvent(merMessage));
                 thread.Start();
                 m_log.Info("New thread started. Thread count: " + m_threadsCount.ToString());
                 break;
             }
             else
             {
                 Thread.Sleep(3000);
             }
         }
         return(false);
     }
     catch (Exception ex)
     {
         m_log.Error("ToMergeMessage ex: " + ex.Message);
         ToMergeMessage            toMergeMessege = merMessage as ToMergeMessage;
         MergerUpdateFailedMessage errMes         = new MergerUpdateFailedMessage(ex.Message, m_scene.StartMessage.SessionId);
         m_dispatcherQueues[toMergeMessege.ID].AddMessage(errMes);
         return(true);
     }
 }
Пример #2
0
        private bool mergerUpdateFailedMessageEvent(DispetcherMessage dispMessage)
        {
            m_log.Info("MergerUpdateFailedMessage. ID: " + m_threadsID[dispMessage.SessionId].ToString());
            MergerUpdateFailedMessage errMessage = dispMessage as MergerUpdateFailedMessage;

            sendError(m_connectionHandlers[dispMessage.SessionId], errMessage.ErrorMessage);
            if (m_renderAbortHandlers.ContainsKey(m_threadsID[dispMessage.SessionId]))
            {
                m_renderAbortHandlers.Remove(m_threadsID[dispMessage.SessionId]);
            }
            m_log.Info("/MergerUpdateFailedMessage");
            return(true);
        }