Я думаю, что самый простой способ сделать это - просто запомнить координаты вашего последнего присутствия. Если нет никаких других правильных ходов, кроме возврата назад, вернитесь назад и отметьте место, на котором вы были, в качестве стены. Наконец вы доберетесь до [F].
Asio io_service
помощник для работы на асинхронных функциях. После того как асинхронная операция готова, она использует один из io_service
выполнение потоков для призывания обратно Вас. Если никакой такой поток не существует, это использует свой собственный внутренний поток для вызова Вас.
Думайте о нем как об очереди, содержащей операции. Это гарантирует Вам, которых те операции, когда выполнено, только сделают так на потоках который названный run()
или run_once()
методы, или при контакте с сокетами и асинхронным IO, его внутренним потоком.
Причина необходимо передать его всем, состоит в основном в том, что кто-то должен ожидать асинхронных операций для чтения, и, как указано в его собственной документации io_service
ссылка ASIO на сервис ввода-вывода Операционной системы, таким образом, это абстрагирует далеко собственный асинхронный notifiers платформы, такой как kqueue
, /dev/pool/
, epoll
, и методы для работы на тех, такой как select()
.
Прежде всего, я заканчиваю тем, что использовал io_service, чтобы демультиплексировать обратные вызовы от нескольких частей системы и удостовериться, что они воздействуют на тот же поток, избавляя от необходимости явную блокировку, так как операции сериализируются. Это - очень мощная идиома для асинхронных приложений.
Можно смотреть на базовую документацию для получения лучшего чувства почему io_service
необходим и что это делает.