C++/CX UWP create_task编译时无法通过,错误C2338

问题遇到的现象和发生背景

只要代码中出现下面这一段代码就会编译报错

问题相关代码,请勿粘贴截图
create_task(dataReader->LoadAsync(1024 * 1024)).then([dataReader](void)
        {
            Buffer^ buff;
            WriteOnlyArray<unsigned char>^ arry;
            dataReader->ReadBytes(arry);
            unsigned char* p = arry->begin();
        });

运行结果及报错内容

编译时产生以下报错:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2338 incorrect parameter type for the callable object in 'then'; consider _ExpectedParameterType or task<_ExpectedParameterType> (see below) CX-UWP C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\ppltasks.h 386

我的解答思路和尝试过的方法

这段代码还在其他的create_task里面套着,但是我试过将他单独拿出来,编译报错结果一样,不清楚原因

我想要达到的结果
//那一段的完整代码时这样
create_task(Windows::Storage::FileIO::ReadBufferAsync(OpenFile)).then([](Windows::Storage::Streams::IBuffer^ buffer)
        {
            auto reader = Windows::Storage::Streams::DataReader::FromBuffer(buffer);
            //获取文件长度
            String^ length = reader->ReadString(buffer->Length);
            //打开文件流
            create_task(OpenFile->OpenAsync(Windows::Storage::FileAccessMode::Read)).then([](Windows::Storage::Streams::IRandomAccessStream^ stream)
                {
                    Windows::Storage::Streams::IInputStream^ inputStream = stream->GetInputStreamAt(0);
                    DataReader^ dataReader = ref new  Windows::Storage::Streams::DataReader(inputStream);
                    create_task(dataReader->LoadAsync(1024 * 1024)).then([dataReader](void)
                        {
                            Buffer^ buff;
                            WriteOnlyArray<unsigned char>^ arry;
                            dataReader->ReadBytes(arry);
                            unsigned char* p = arry->begin();
                        });
                });
        });

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。