Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 1.76 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. OutOfMemory Exception C# When working with threads
  2. ThreadPool.QueueUserWorkItem(currentJob.ProcessJob, (object)timeToWwait);
  3.        
  4. ThreadPool.SetMinThreads(0, 0);
  5.         ThreadPool.SetMaxThreads(5, 5);
  6.         while (true)
  7.         {
  8.             bool processJob = false;
  9.             bool checkedFrontEnd = false;
  10.             _qLock.EnterWriteLock();
  11.             try
  12.             {
  13.                 if (_jobQueue.Count > 0)
  14.                 {
  15.                     currentJob = _jobQueue.Dequeue();
  16.                     // currentJob.IsActive = true;
  17.                     // processJob = true;
  18.                 }
  19.             }
  20.             finally
  21.             {
  22.                 _qLock.ExitWriteLock();
  23.             }
  24.             ThreadPool.QueueUserWorkItem(currentJob.ProcessJob, (object)timeToWwait);
  25.             //currentJob.ProcessJob((object)timeToWwait);
  26.  
  27.  
  28.             _qLock.EnterWriteLock();
  29.             try
  30.             {
  31.                 _jobQueue.Enqueue(currentJob);
  32.             }
  33.             finally
  34.             {
  35.                 _qLock.ExitWriteLock();
  36.             }
  37.        
  38. ThreadPool.QueueUserWorkItem((state) =>
  39.                                          {
  40.                                              currentJob.ProcessJob();
  41.                                              _qLock.EnterWriteLock();
  42.                                              try
  43.                                              {
  44.                                                  _jobQueue.Enqueue(currentJob);
  45.                                              }
  46.                                              finally
  47.                                              {
  48.                                                  _qLock.ExitWriteLock();
  49.                                              }
  50.  
  51.                                          }
  52.             );