コード例 #1
0
ファイル: GenericDataQueue.cs プロジェクト: janproch/datadmin
 public IBedRecord GetRecord()
 {
     try
     {
         Element res = m_queue.Get();
         if (res.IsEof)
         {
             throw new Exception("DAE-00223 Eof reached");
         }
         IBedRecord rec = res.Record;
         foreach (var ada in m_outputAdapters)
         {
             rec = ada.AdaptRecord(rec, ProgressInfo);
         }
         return(rec);
     }
     catch (QueueClosedError)
     {
         if (m_error != null)
         {
             throw new QueueClosedError("DAE-00224", m_error);
         }
         throw new QueueClosedError("DAE-00225");
     }
 }
コード例 #2
0
 private void Run()
 {
     try
     {
         ThreadRegister.RegisterThread(Thread.CurrentThread);
         DoCreateConnection();
         if (AfterCreateConnection != null)
         {
             AfterCreateConnection(this);
         }
         while (!m_breakFlag)
         {
             QElement obj = m_queue.Get();
             try
             {
                 obj.Run();
                 m_statProcessedOkQElements++;
             }
             catch (Exception e)
             {
                 Logging.Error("Error processing queue element:" + e.ToString());
                 m_statProcessedFailQElements++;
             }
         }
     }
     finally
     {
         ThreadRegister.UnregisterThread(Thread.CurrentThread);
     }
 }
コード例 #3
0
ファイル: Loggers.cs プロジェクト: janproch/datadmin
 void LoggerThreadProc()
 {
     for (; ;)
     {
         LogMessageRecord rec = m_queue.Get();
         if (rec == null)
         {
             return;
         }
         m_target.LogMessage(rec);
     }
 }
コード例 #4
0
 private static void ThreadProc()
 {
     for (; ;)
     {
         var elem = m_downloadQueue.Get();
         try
         {
             elem.DownloadFeed();
         }
         catch
         {
             Logging.Error("Error downloading online help feed:" + elem.Name);
         }
     }
 }