//Run one AgentWorker for each job private void RunWorkers() { for (int i = 0; i < _jobs.Count; i++) { _doneEvents[i] = new ManualResetEvent(false); AgentWorker w = new AgentWorker(_jobs[i], _doneEvents[i]); _workerArray[i] = w; ThreadPool.QueueUserWorkItem(w.RunJobCallback, i); //umjesto i moze ici bilo koji objekt } WaitHandle.WaitAll(_doneEvents); //done with all jobs in this set... }