c期货承诺像javascript?

c期货承诺像javascript?,第1张

概述我一直在写一些 javascript,我喜欢的环境之一是使用promises / futures来处理异步事件的方式. 在C中,您必须在未来调用.get,并阻止未来的结果可用,但在Javascript中可以编写.then(fn),并在结果准备就绪时调用该函数.在最后的时间里,它与调用者的线程相同,所以没有线程同步问题要担心,至少与c中不一样. 我正在思考c – auto fut = asyncIm 我一直在写一些 javascript,我喜欢的环境之一是使用promises / futures来处理异步事件的方式.

在C中,您必须在未来调用.get,并阻止未来的结果可用,但在Javascript中可以编写.then(fn),并在结果准备就绪时调用该函数.在最后的时间里,它与调用者的线程相同,所以没有线程同步问题要担心,至少与c中不一样.

我正在思考c –

auto fut = asyncImageLoader("cat.jpg");fut.then([](Image img) { std::cout << "Image is Now loaded\n" << image; });

有没有办法在c中实现这一点?显然,它将需要某种事件队列和事件循环来处理调度回调.我可能最终会编写代码来做大部分工作,但是想看看是否有任何方法可以轻松地使用标准设施来实现目标.

解决方法 对于即将到来的C17标准,std :: future的一个功能已经是 proposed.

Boost’s implementation of future(符合当前标准,但提供附加功能作为扩展)已经在较新版本(1.53或更高版本)中提供了该功能的一部分.

对于更为成熟的解决方案,请查看Boost.Asio library,这样可以方便地实现由future.then提供的异步控制流. Asio的概念稍微复杂一点,因为它需要访问一个中央的io_service对象来调度异步回调,并需要手工管理工作线程.但原则上这是一个非常好的匹配你所要求的.

总结

以上是内存溢出为你收集整理的c期货/承诺像javascript?全部内容,希望文章能够帮你解决c期货/承诺像javascript?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1233561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存