Windows 8 如何访问从链中的上一个任务返回的变量?

Windows 8 如何访问从链中的上一个任务返回的变量?,windows-8,c++-cx,Windows 8,C++ Cx,我有下面的任务链,我想在上一个任务中访问变量解码器,但是在一个更早的任务中创建的 create_task(file->OpenReadAsync()).then([](IRandomAccessStream^ inStream) { return BitmapDecoder::CreateAsync(inStream); }).then([localFolder](BitmapDecoder^ decoder) { return localFolder->Creat

我有下面的任务链,我想在上一个任务中访问变量解码器,但是在一个更早的任务中创建的

create_task(file->OpenReadAsync()).then([](IRandomAccessStream^ inStream) {
    return BitmapDecoder::CreateAsync(inStream);

}).then([localFolder](BitmapDecoder^ decoder) {
    return localFolder->CreateFileAsync("map.png", CreationCollisionOption::ReplaceExisting);

}).then([](StorageFile^ outFile) {
    return outFile->OpenAsync(FileAccessMode::ReadWrite);

}).then([](IRandomAccessStream^ outFileStream) {
    return BitmapEncoder::CreateAsync(BitmapEncoder::PngEncoderId, outFileStream);

}).then([](BitmapEncoder^ encoder) {
    BitmapPixelFormat pixelFormat = decoder->BitmapPixelFormat; // how do I make decoder available here?
    // Do stuff that uses encoder & decoder
});

最后,我只是将所需的变量分配给包含任务链的函数的局部变量。

1。那伤了我的眼睛。这不是C++,是C++或Cclion的建议,如何让它对你的眼睛伤害更少?你认为你的好处是如何把它链接起来?为什么不把所有的函数都放在一个任务中,而不是调用一个任务?它们是异步操作,没有等价的同步函数,我认为最好的做法是把任务链起来,而不是把.MeldsGun-Valy代码嵌套到C++的群和Ed,它是C++ + CX代码。这不会阻止您在类的字段中存储中间值,以便以后可以访问它。