Boost C++ 库

...世界上最受推崇和设计精湛的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

取消

在 Boost.Asio 中,许多对象,如套接字和定时器,支持通过其 close 或 cancel 成员函数对未完成的异步操作进行对象范围的取消。但是,某些异步操作也支持单独的、有针对性的取消。这种按操作取消是通过指定每个异步代理都有一个关联的 取消槽 来实现的。

为了支持取消,异步操作会将取消处理程序安装到代理的槽中。取消处理程序是一个函数对象,当用户向槽中发出取消信号时,将调用该对象。由于取消槽与单个代理关联,因此该槽一次最多保存一个处理程序,并且安装新的处理程序将覆盖任何先前安装的处理程序。因此,同一个槽被重用于代理中的后续异步操作。

当异步操作包含多个子代理时,取消特别有用。例如,一个子代理可能已完成,而另一个子代理随后被取消,因为不再需要其副作用。

参见

按操作取消.


PrevUpHomeNext