我正在用 C++ 编写代码,并且正在尝试异步加载图像文件。经过一番研究,我发现一些关于使用 boost::asio 和 boost::iostreams 来做这件事的提及。但是, boost::asio 的文档和示例主要与套接字相关,因此对我没有多大帮助。
这是我需要的:
- 异步加载文件并在加载完成后执行回调函数。(在我的例子中,回调函数使用 v8 javascript 引擎执行 javascript 函数对象)
- 回调函数必须与主函数在同一线程中执行。(因为 v8 不是线程安全的。)
- 需要在linux和windows上工作。(单独的实现是可以的)
所以,这样的事情会非常好:
async_read("test.jpg", &the_callback_function);
该函数不应阻塞,并且在文件加载完成后,它应该运行“the_callback_function”。
编辑:正如 joshperry 指出的那样, boost::asio 可能无法调度回主线程。所以,我想我不必仅限于 boost::asio 和 boost:iostreams。任何可以帮助满足此要求的 c/c++ 库都应该没问题。谢谢!