public void Invoke(object threadOwner, Action action) { JobPool jobPool; lock (_sync) { if (!_jobPoolDictionary.TryGetValue(threadOwner, out jobPool)) { jobPool = new JobPool(); _jobPoolDictionary[threadOwner] = jobPool; } } jobPool.Execute(action); }
public Task <T> InvokeAsync <T>(object threadOwner, Func <T> action) { JobPool jobPool; lock (_sync) { if (!_jobPoolDictionary.TryGetValue(threadOwner, out jobPool)) { jobPool = new JobPool(); _jobPoolDictionary[threadOwner] = jobPool; } } return(jobPool.ExecuteAsync(action)); }