Improved by converting the BlockingCollection into a collection of Pulse objects rather than int.
Moved the task creation into a loop to reduce the duplication.