Windows runtime WinRT C++/未编译的CX任务

Windows runtime WinRT C++/未编译的CX任务,windows-runtime,task,c++-cx,ppl,iasyncoperation,Windows Runtime,Task,C++ Cx,Ppl,Iasyncoperation,我正在尝试使用C++/CX创建WinRT组件。我有下面的代码,但它没有编译。怎么了? 据我所知,如果PPL任务是一个有结果的任务,那么它应该透明地转换为IAsyncOperation IAsyncOperation<Boolean>^ Class::OpAsync() { return create_task([] () { return true; }); } IAsyncOperation^Class::OpAsync() { 返回create_任务([](){retu

我正在尝试使用C++/CX创建WinRT组件。我有下面的代码,但它没有编译。怎么了? 据我所知,如果PPL任务是一个有结果的任务,那么它应该透明地转换为IAsyncOperation

IAsyncOperation<Boolean>^ Class::OpAsync()
{
    return create_task([] () { return true; });
}
IAsyncOperation^Class::OpAsync()
{
返回create_任务([](){return true;});
}
错误消息

error C2440: 'return' : cannot convert from 'Concurrency::task<_ReturnType>' to 'Windows::Foundation::IAsyncOperation<TResult> ^'
          with
          [
              _ReturnType=bool
          ]
          and
          [
              TResult=bool
          ]
          No user-defined-conversion operator available, or
          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
错误C2440:'return':无法从'Concurrency::task'转换为'Windows::Foundation::IAsyncOperation^'
具有
[
_ReturnType=bool
]
和
[
TResult=bool
]
没有可用的用户定义的转换运算符,或
没有可执行此转换的用户定义的转换运算符,或者无法调用该运算符
create_task()函数用于获取IAsyncOperation并将其转换为任务(基本上与您想要的相反)

要将任务转换为IAsyncOperation,您需要调用create_async()。

create_task()函数用于获取IAsyncOperation并将其转换为任务(基本上与您想要的相反)

要将任务转换为IAsyncOperation,需要调用create\u async()