Time *not* to refactor the JobDispatcher class
The JobDispatcher has to tasks to perform: keeping track of the dispatched jobs and executing them.
So, at one point, Marc and I discussed about adding a virtual Execute(IJob job) method that would Execute the job. This way, inheritors could add tracking or exception handling.
Read more