C++ Can';t将create_async()与WRL WinRT组件一起使用

C++ Can';t将create_async()与WRL WinRT组件一起使用,c++,microsoft-metro,windows-runtime,wrl,C++,Microsoft Metro,Windows Runtime,Wrl,我想使用WRL编写一个具有异步支持的WinRT组件,但是我发现create\u async()是未定义的,即使我包含了ppltask.h和使用命名空间并发 如何使用WRL模式创建后台任务 我的功能是: HRESULT GetStreamAsync([out, retval] IAsyncOperation<IRRandomAccessStream*>** operation); HRESULT GetStreamAsync([out,retval]IAsyncOperation**

我想使用WRL编写一个具有异步支持的WinRT组件,但是我发现
create\u async()
是未定义的,即使我包含了
ppltask.h
使用命名空间并发

如何使用WRL模式创建后台任务

我的功能是:

HRESULT GetStreamAsync([out, retval] IAsyncOperation<IRRandomAccessStream*>** operation);
HRESULT GetStreamAsync([out,retval]IAsyncOperation**operation);
我还尝试使用
IThreadPoolStatics->RunAsync()
,但似乎它只能在
iasyncation
的情况下使用,并且没有返回值。有人可以帮忙吗?

仅在C++/CX中可用(文档中可能没有明确说明,但所有可能的返回类型都是帽子类型,表示它仅在C++/CX中可用)

Wrl包含基类模板,您可以从中派生出它来实现C++和WRL的异步操作。 我不知道有哪种规范的实现会包装或,但您可以在Boost许可中找到一个实现示例(搜索
async\u-operation\u-base
task\u-based\u-async\u-operation
)。

仅在C++/CX中可用(文档中可能没有明确说明这一点,但所有可能的返回类型都是hat类型,这表明它仅在C++/CX中可用)

Wrl包含基类模板,您可以从中派生出它来实现C++和WRL的异步操作。 我不知道有哪种规范的实现可以包装或,但您可以在Boost许可中找到一个实现的示例(搜索
异步\u操作\u base
基于任务的\u异步\u操作