Это зависит от задачи, которую вы делаете. Поскольку вы говорите, что он не использует много ЦП, я предполагаю, что задача занимает много времени, потому что она ожидает других событий. Итак, вам нужно спроектировать задачу для регистрации обратных вызовов для тех событий, где каждый обратный вызов быстро завершается в главном потоке, но не запускается до тех пор, пока событие, которое вы ожидаете, не произойдет.