private void AcquireJob() { this.FreeJobs--; var batch = this.UploadBatches.Dequeue(); var job = new CompressorJob(this.ImageEndpoints, batch); job.Completed += this.OnImageCompressCompleted; job.ProgressChanged += this.OnImageProgressChanged; job.Disposed += this.OnJobDisposed; ThreadPool.QueueUserWorkItem(o => { job.Start(); job.Dispose(); }); }