Example #1
0
 private void Worker()
 {
     DateTime dtNextScan = DateTime.Now; // tsDelay = new TimeSpan(_finder.RepeatSearch, 0, 0);
     while (true)
     {
         while (_finder == null)
         {
             try
             {
                 Thread.Sleep(5000);
                 _finder = new Finder();
                 _finder.NewResults += new Finder.NewResultsCallback(_finder_NewResults);
                 Log.Info("Start searching programs database");
             }
             catch (Exception e)
             {
                 Log.Warn("caught excption: " + e.Message);
                 Log.Info(e.StackTrace);
                 _finder = null;
                 Thread.Sleep(500);
             }
         }
         try
         {
             if (DateTime.Now >= dtNextScan)
             {
                 _finder.FindPrograms();
                 dtNextScan += new TimeSpan(_finder.RepeatSearch, 0, 0);
                 Log.Info("Done searching programs database, next scan will be at " + dtNextScan.ToString());
             }
             else
                 UpdateIsRunning();
         }
         catch (Exception e)
         {
             Log.Warn("caught excption: " + e.Message);
             Log.Info(e.StackTrace);
             _finder = null;
         }
         Thread.Sleep(15000);
     }
 }