public ConcurrentJob GetJob(int index) { ConcurrentJob result = null; if (index >= 0 && index < jobs.Count) { result = jobs[index]; } return(result); }
public ConcurrentJob GetJob(string name) { ConcurrentJob result = null; for (var i = 0; i < jobs.Count; i++) { if (jobs[i].Name == name) { result = jobs[i]; break; } } return(result); }
public int Add(Action <ConcurrentJob, object> job, string name = "", ConcurrentJobCreationOptions options = ConcurrentJobCreationOptions.AddRunRemove, object obj = null) { var result = -1; ConcurrentJob cj = null; lock (AppDomain.CurrentDomain) { cj = new ConcurrentJob(this, job, options, name); jobs.Add(cj); result = jobs.Count - 1; } if (options == ConcurrentJobCreationOptions.AddRunRemove || options == ConcurrentJobCreationOptions.AddAndRun) { cj.Start(obj); } return(result); }
public void NotifyFinish(ConcurrentJob job) { var index = -1; if (job.Options == ConcurrentJobCreationOptions.AddRunRemove && job.State != ConcurrentJobState.Running) { index = this.IndexOf(job); if (index >= 0) { try { jobs.RemoveAt(index); } catch (Exception e) { Debug.WriteLine("removing job('" + job.Name + "') failed"); Debug.WriteLine(e.Message); } } } }
public RemoveResult Remove(ConcurrentJob job) { var index = this.IndexOf(job); return(Remove(index)); }
public int IndexOf(ConcurrentJob job) { return(jobs.IndexOf(job)); }