我想使用 WRL 编写一个支持异步的 WinRT 组件,但我发现create_async()
即使我包括了,也是未定义的ppltask.h
and using namespace concurrency
如何使用WRL模式创建后台任务?
我的功能是这样的:
HRESULT GetStreamAsync([out, retval] IAsyncOperation<IRRandomAccessStream*>** operation);
我也尝试使用IThreadPoolStatics->RunAsync()
,但似乎只能在以下情况下使用IAsyncAction
并且没有返回值。有人可以帮忙吗?
concurrency::create_async仅在 C++/CX 中可用(文档中可能没有明确说明,但所有可能的返回类型都是帽子类型,表明它仅在 C++/CX 中可用)。
WRL 包括Microsoft::WRL::AsyncBase基类模板,您可以从中派生以使用 C++ 和 WRL 实现异步操作。
我不知道包装的规范实现std::future or concurrency::task,但是您可以在 Boost 许可的中找到实现示例CxxReflect 库(搜索async_operation_base
and task_based_async_operation
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)