Вы можете попробовать использовать таймеры и обратный вызов таймера для этого. Идея состоит в том, чтобы иметь таймер (или, может быть, два), который срабатывает, когда ваш обработчик может работать и как долго. Каждый раз, когда истекает таймер «go», он запускает поток, который записывает ваши данные в ответ до тех пор, пока не истечет таймер «stop» (или снова не истечет тот же таймер), затем этот поток завершает то, что делал, выполняет служебную работу Следующий поток сбрасывает таймер «go» и завершает работу. Ваш основной поток устанавливает исходный таймер, данные для передачи, затем вызывает таймер и завершает работу. Предположительно, вам нужно было бы где-то хранить указатель на ответ, чтобы вы могли снова получить к нему доступ. Изменяя продолжительность времени, которое обработчик должен ждать / выполнять, вы можете контролировать, сколько ресурсов он использует.