2012-12-09 58 views
1

我有以下任務鏈,我想在上一個任務中訪問變量decoder,但在更早的任務中創建。如何訪問鏈中前一個任務返回的變量?

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 
}); 
+3

1.那傷害了我的眼睛,2.那不是C++,它是C++/CLI –

+0

關於如何減少傷害你的眼睛的任何建議? – Curyous

+0

你認爲你的好處是如何將它鏈接起來?爲什麼不把所有功能放在一個函數中,而是在一個任務中調用該函數呢? – esskar

回答

0

最後,我只是將我需要的變量分配給包含任務鏈的函數的局部變量。

相關問題