Example #1
0
        /// <summary>
        /// The worker thread method
        /// </summary>
        private void Worker()
        {
            while (!shutdown)
            {
                workevent.WaitOne();
                WebrequestInstance request = null;
                lock (syncroot) if (waitingqueue.Count > 0)
                    {
                        request = waitingqueue.Dequeue();
                    }
                if (request != null)
                {
                    try
                    {
                        request.Process();
                    }
                    catch (Exception ex)
                    {
                        Interface.GetMod().RootLogger.WriteException("Web request produced exception", ex);
                    }

                    lock (syncroot) completequeue.Enqueue(request);
                }
                lock (syncroot) if (waitingqueue.Count > 0)
                    {
                        workevent.Set();
                    }
            }
        }
Example #2
0
 /// <summary>
 /// The worker thread method
 /// </summary>
 private void Worker()
 {
     while (!shutdown)
     {
         workevent.WaitOne();
         WebrequestInstance request = null;
         lock (syncroot) if (waitingqueue.Count > 0)
             {
                 request = waitingqueue.Dequeue();
             }
         if (request != null)
         {
             request.Process();
             lock (syncroot) completequeue.Enqueue(request);
         }
         lock (syncroot) if (waitingqueue.Count > 0)
             {
                 workevent.Set();
             }
     }
 }