Use GCD background queues to prevent blocking.