取消与文件关联的所有异步操作。
void cancel();
此函数会立即完成所有未完成的异步读取和写入操作,并且取消操作的处理程序将传递 boost::asio::error::operation_aborted
错误。
失败时抛出。
在 Windows XP、Windows Server 2003 和更早版本的 Windows 上运行时,除非定义了 BOOST_ASIO_ENABLE_CANCELIO,否则调用 cancel()
始终会失败,并显示 boost::asio::error::operation_not_supported
错误。但是,CancelIo 函数有两个问题,在启用其使用之前应考虑这些问题
对于可移植的取消,请考虑使用 close()
函数来同时取消未完成的操作并关闭文件。
在 Windows Vista、Windows Server 2008 及更高版本上运行时,始终使用 CancelIoEx 函数。此函数没有上述问题。