c++ - 本地对象超出范围后异步成员函数会发生什么?
问题描述
例如,如果我可以这样调用异步函数:
{
Example example;
example.asyncFuncInside();
}
由于对象在作用域之后被释放,它会对异步函数内部运行的正在进行的任务有任何风险吗?
解决方案
目前的形式无法回答这个问题。如果“异步”是分离的std::thread
,则不会发生任何不好的事情。std::async
另一方面,如果异步函数是使用 , 实现的,asyncFuncInside
则将返回其std::future
, 并且由于忽略了 dtorstd::future
将阻塞。
推荐阅读
- graphql - Apollo + GraphQL:接口上的片段适用于一种具体类型,但不适用于另一种
- java - 如何仅在 ListView 中显示某些项目?
- java - 什么时候在码头调用 onWritePossible() 方法?jetty 如何决定何时调用 write listener 方法?
- amazon-dynamodb - 如何保证 DynamoDB 中的业务规则?
- version-control - 将 MinGW 置于配置管理之下
- winapi - 删除系统菜单按钮
- build - 无法通过交叉编译添加 rf24 库
- java - 如何将 Bridge 消息从 Java (Android) 发送到 JavaScript
- reactjs - 材质 UI,警告不能作为子级出现
- javascript - 将循环转入箭头函数Javascript