- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码调用已发布的句柄
boost::asio::io_context ioc;
boost::asio::post(ioc, []{ std::cout << "lol" << std::endl; });
ioc.poll();
而这不会:
boost::asio::io_context ioc;
ioc.poll(); // empty, set internal state to stopped_
boost::asio::post(ioc, []{ std::cout << "lol" << std::endl; });
ioc.poll(); // doesn't work as stopped() now returns true
Live example
io_context
以某种方式改变这种行为?
最佳答案
io_service/io_context 旨在在它们用完工作时停止¹。
io_service
的文档和 io_context
包含:
Stopping the io_context from running out of work
Some applications may need to prevent an io_context object's run() call from returning when there is no more work to do. For example, the io_context may be being run in a background thread that is launched prior to the application's asynchronous operations. The run() call may be kept running by creating an object of type boost::asio::executor_work_guard<io_context::executor_type>:
boost::asio::io_context io_context;
boost::asio::executor_work_guard<boost::asio::io_context::executor_type>
= boost::asio::make_work_guard(io_context);
...To effect a shutdown, the application will then need to call the io_context object's stop() member function. This will cause the io_context run() call to return as soon as possible, abandoning unfinished operations and without permitting ready handlers to be dispatched.
Alternatively, if the application requires that all operations and handlers be allowed to finish normally, the work object may be explicitly reset.
boost::asio::io_context io_context;
boost::asio::executor_work_guard<boost::asio::io_context::executor_type>
= boost::asio::make_work_guard(io_context);
...
work.reset(); // Allow run() to exit.
io_service::work
目的:
io_service ios;
io_service::work work(ios); // old interface!
这将需要您做额外的工作才能重置它:
asio::io_service ios;
std::optional<asio::io_service::work> work(ios);
// ...
work.reset();
重启
restart()
在重新使用它之前:
io_context
/
io_service
必须是
thread_pool
(这是一个
execution_context
就像
io_context
是)不是为重复使用而设计的(参见例如
Boost asio thread_pool join does not wait for tasks to be finished )
关于c++ - 防止 boost::asio::io_context 在空轮询调用时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63378018/
var status = {{ check_status }}; call_polling = function() { // polling request to API (async)
我有一个网络应用程序,它有一个计时器,每 3 秒触发一次轮询以获取数据。它工作正常大约 2.5 分钟,然后 Chromium 崩溃。 我的请求 Dart 看起来像这样 HttpRequest.getS
是否已经有为 jQuery 编写的通知库?一种提供下拉消息的方式,类似于 StackOverflow 的方式。 寻找的东西: 1)每几秒轮询一次(也许可以选择 cometd ) 2) 有一个标记为已读
当电池电量不足时,Android 将发送一个 ACTION_BATTERY_LOW Intent 。然后当它再次正常时,它会发送 ACTION_BATTERY_OKAY。 不幸的是,如果我的应用程序在
如果在内核模式CPU可以访问用户空间内存,为什么我们在调用poll/select时需要将数据从用户空间复制到内核空间? 引自 Linux 编程接口(interface): When running i
我正在尝试使用来自 python 的 poll() 来轮询一个进程。 link 我不明白,我正在为它提供一个整数值来进行轮询。例如:值为 14870 14870 Traceback (most rec
我正在用 Java 编写一个程序,我在一个线程上打开了 256 个网络连接。每当套接字上有任何数据时,我都应该读取它并进行处理。目前,我正在使用以下方法: while true do itera
我有一个有点哲学的问题。我们使用存储队列来处理“门票”。我们实现的方式是我们有一个后台服务(辅助角色),它轮询存储队列并找出是否有任何票证需要处理。我们所做的工作具有季节性。这意味着不会一直有票需要处
我目前正在使用 CFReadStreamHasBytesAvailable 轮询我的 CFReadStream 以获取新数据。 (首先,一些背景知识:我正在做自己的线程,我不想/不需要搞乱运行循环的东
使用 azure-sdk-for-php 长时间轮询 Azure 队列存储时,如果我的请求间隔超过 30 秒,则库会因以下错误而终止: PHP Notice: fwrite(): send of 2
我在尝试使用 JavaScript 监听 Firebase 中的更改来进行实时刷新时遇到了一些问题。我尝试做的是一个聊天系统。与另一个用户开始新的聊天后,我将加载两个用户之间的所有聊天。 code 我
我正在开发一个使用通知系统的网站(如 Facebook 的系统)。为此,我想我将编写一个 JQuery 轮询函数,使用 ajax 在服务器端查找新通知。 我的问题是,这是个好主意吗? 最佳答案 客户端
我正在开发一个后端服务,该服务使用 spring aws 集成定期轮询 S3 存储桶,并处理来自 S3 的轮询对象。下面是它的实现 @Configuration @EnableIntegration
我想要一些关于如何实现以下内容的建议: 我想让我的用户通过 AJAX 了解在我的服务器上运行的任务的进度。我的服务器运行一个 PHP 脚本,该脚本使用 popen 函数通过 shell 命令下载文件。
我想使用 jQuery 和 AJAX 持续轮询 URL,直到收到 200 状态代码响应。 URL 指向提供文件的 REST API。理想情况下,我会获取其他状态代码,在这些状态代码上我将再次调用 UR
我想知道是否可以将 Ajax 轮询插入到我下面的当前代码中,以便用户每隔几秒发布一次更新,以显示添加到数据库中的任何新内容,例如它们的状态和新的数量添加的评论和我构建的提要中的时间戳。这是我到目前为止
我想弄清楚如何在不使用触发器的情况下轮询对 Oracle 表所做的更改。我目前关心的唯一变化是新的/插入的记录。任何建议将不胜感激。 我也真的不想使用其他表来跟踪更改的内容。 谢谢! 小号 最佳答案
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭 3 年前。 我正在尝试轮询 AP
我有一个 SSIS 包,它在 Foreach 容器 中启动另一个 SSIS 包;因为容器在启动它必须启动的所有包后立即报告完成,我需要一种方法让它等到所有“子”包都完成。 所以我实现了一个小的 sle
我将这段代码放入我的主视图文件中: jQuery(document).ready(
我是一名优秀的程序员,十分优秀!