public static void addSaveJob(Program toSave) { SaveJob newJob = new SaveJob(); newJob.ProgramToSave = toSave; lock (QueueLock) { if (!_saveJobQueue.Contains(newJob)) _saveJobQueue.Enqueue(newJob); } // Wake up the Saving Task waitHandle.Set(); }