public void onTimeEvent(object source, System.Timers.ElapsedEventArgs e) { lock (Program.o) { if (iOWaitingProcessesQueue.Count() > 0) { count++; if (count == 100) { Console.WriteLine("a process io has finished"); Process tempP = iOWaitingProcessesQueue.ElementAt(0); iOWaitingProcessesQueue.RemoveAt(0); Program.os.IOFInishedEventHandler(tempP); tempP.removeIORequiredtime(); count = 0; } } } }