Manage Program Flow with Tasks or Events
<p>My program executes other programs remotely using a service that does not implement change or complete notification.  To determine if the program is complete there is a background thread that runs an infinite loop (until the cancellation token is passed). When a job is submitted it is added to a list of active jobs in the status queue and the background thread checks the status of each job in the list and fires an event with a job as arguments when it completes and another event when the queue is empty.</p>

<p>While this solution does work, I wonder if this is the best possible solution for this problem.  It seems to me that tasks are ideally suited for this situation because they are what I would use if I wasn't relying on the server to dispatch the job.  </p>

<p>Is there an advantage to using tasks instead of events in this case?</p>