Я потерял различие между публикацией сообщений с использованием strand :: wrap и strand :: post? Похоже, что оба гарантируют сериализацию, но как можно сериализовать с помощью переноса и не получить последовательный порядок? Похоже, им обоим придется делать одно и то же. Когда бы я использовал один поверх другого?
Вот еще немного подробностей псевдокода:
mystrand(ioservice);
mystrand.post(myhandler1);
mystrand.post(myhandler2);
это гарантирует, что два моих обработчика будут сериализованы и выполнены по порядку даже в пуле потоков.
Теперь, как это отличается от ниже?
ioservice->post(mystrand.wrap(myhandler1));
ioservice->post(mystrand.wrap(myhandler2));
Похоже, они делают то же самое?
Зачем использовать один над другим? Я вижу, как используется, и пытаюсь выяснить, когда
одно имеет больше смысла, чем другое.