Asynchronous 创建调用ref类密封构造函数的任务';创建任务';:找不到匹配的重载函数

Asynchronous 创建调用ref类密封构造函数的任务';创建任务';:找不到匹配的重载函数,asynchronous,uwp,task,c++-cx,Asynchronous,Uwp,Task,C++ Cx,我已经创建了调用MyClass的构造函数,我的类被定义为ref类MyClass sealed,这个函数在public下被定义为static IAsyncOperation<MyClass^>^ MyNameSpace::MyClass::CreateAsync() { return create_task(MyClass()).then([](MyClass^ objectx) { return ref new MyClass(); /

我已经创建了调用MyClass的构造函数,我的类被定义为ref类MyClass sealed,这个函数在public下被定义为static

IAsyncOperation<MyClass^>^ MyNameSpace::MyClass::CreateAsync()
{
    return create_task(MyClass()).then([](MyClass^ objectx)
    {
        return ref new MyClass();
        //return std::make_shared<MyClass>();
    });
}

构造函数不是异步操作,因此不能用作
创建\u任务的参数。如果需要很长时间,并且希望将构造函数作为任务运行,请改用
create\u async

从你上面的例子来看:

IAsyncOperation<MyClass^>^ MyNameSpace::MyClass::CreateAsync()
{
    return concurrency::create_async([]
    {
        return ref new MyClass();
    });
}
IAsyncOperation^MyNameSpace::MyClass::CreateAsync()
{
返回并发::创建异步([]
{
return ref new MyClass();
});
}

这将启动一个任务来运行lambda(它构造了您的类),然后将它包装到您可以使用的WinRT
IAsyncOperation
中。由于您的构造函数什么都不做,我不知道您为什么希望它是异步的(除非您省略了一系列昂贵的调用)。

您能详细说明一下吗?我的构造函数是:
MyNameSpace::MyClass::MyClass():Param1(Windows::Graphics::Imaging::BitmapSize{0u,0u})、Param2(Windows::Graphics::Imaging::BitmapSize{0u,0u}){}
我应该如何处理这种类型的常量-谢谢
IAsyncOperation<MyClass^>^ MyNameSpace::MyClass::CreateAsync()
{
    return concurrency::create_async([]
    {
        return ref new MyClass();
    });
}