/// <summary> /// threaded io /// </summary> public virtual void QueueIO(IThreadedFileIO par1IThreadedFileIO) { if (ThreadedIOQueue.Contains(par1IThreadedFileIO)) { return; } else { WriteQueuedCounter++; ThreadedIOQueue.Add(par1IThreadedFileIO); return; } }
/// <summary> /// Process the items that are in the queue /// </summary> private void ProcessQueue() { for (int i = 0; i < ThreadedIOQueue.Count; i++) { IThreadedFileIO ithreadedfileio = ThreadedIOQueue[i]; bool flag = ithreadedfileio.WriteNextIO(); if (!flag) { ThreadedIOQueue.RemoveAt(i--); SavedIOCounter++; } try { if (!IsThreadWaiting) { Thread.Sleep(10); } else { Thread.Sleep(0); } } catch (ThreadInterruptedException interruptedexception1) { Console.WriteLine(interruptedexception1.ToString()); Console.WriteLine(); } } if (ThreadedIOQueue.Count == 0) { try { Thread.Sleep(25); } catch (ThreadInterruptedException interruptedexception) { Console.WriteLine(interruptedexception.ToString()); Console.WriteLine(); } } }