À l'aide de boost::asio::ip::tcp::socket::annuler() et socket::close()

Si j'utilise la fermer et de ne pas annuler, il y a quelques problèmes.

La close fonction peut fermer le socket, et le solde des opérations asynchrones est arrêté par le retour boost::asio::error::operation_aborted erreur.

Pourquoi devrais-je utiliser cancel au lieu de close?

- Je m'inquiéter si certaines opérations asynchrones est en cours d'exécution, le cancel ne pouvait pas l'annuler, oui?

Comme asio::ip::tcp::resolve::cancel, j'ai essayer plusieurs fois pour annuler la resolve_handler après l'appel de async_resolve, mais resolve_handler retourne toujours avec pas de boost::asio::error::operation_aborted erreur.

Je pense que resolve_handler est en cours d'exécution?

Oui?

InformationsquelleAutor xiao su | 2011-06-22