Если вы можете изменить класс BackgroundTask
, пусть он уведомит вашего бегуна, когда он будет готов. Добавьте очередь в свой класс бегуна, и каждый раз, когда задача готова, она может добавить себя в очередь и уведомить об этом.
Затем класс бегуна ждет в очереди, когда она пуста, и вытаскивает из нее элементы для запуска, когда она не запущена.