Нет, порядок выполнения не гарантируется по умолчанию.
Когда обратный вызов размещен на io_service
, что обратный вызов будет вызван «соответствующее время» до тех пор, как подстилающая io_service
активно опрашиваются какой-нитью (с использованием одной из следующих функций: run()
, run_one()
, poll()
, poll_one()
).
Некоторые команды, которые могут быть отправлены, могут не возвращаться (например, асинхронное чтение в сокете, где данные не отправляются). Эти типы асинхронных действий обычно предоставляют код ошибки для обратного вызова, который можно проверить. Этот код ошибки в некоторых случаях будет содержать сведения об успешном (или неудачном) выполнении операции. В приведенном выше примере ожидающие асинхронные чтения будут иметь свои обратные вызовы с кодом ошибки «операция прервана», если основной сокет закрыт.
Нет, порядок исполнения не гарантируется. – Chad
@ Chad Это хорошая новость, разве это означает, что мой запрос никогда не будет удален? – andre
Обратные вызовы будут вызываться в соответствующее время, пока подпроцесс 'io_service' будет опрошен (через' run() ',' poll() ',' run_one() 'или' poll_one() ') какой-то поток , – Chad