Использовать таймер источника отправки.В любом случае, нет гарантии в реальном времени.
dispatch_source_t timerX = dispatch_source_create(
DISPATCH_SOURCE_TYPE_TIMER, 0, 0,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_source_t timerY = dispatch_source_create(
DISPATCH_SOURCE_TYPE_TIMER, 0, 0,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_source_set_timer(timerX,
dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC),
DISPATCH_TIME_FOREVER, 0);
dispatch_source_set_timer(timerY,
dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC),
DISPATCH_TIME_FOREVER, 0);
dispatch_source_set_event_handler(timerX, ^{
/* call X */
});
dispatch_source_set_event_handler(timerY, ^{
/* call Y */
});
dispatch_resume(timerX);
dispatch_resume(timerY);