2015-07-12 49 views
0

有沒有辦法將延續鏈(我在某些函數中創建的)發送到另一個函數並將其附加到那裏? 像C++從UI線程中的函數追加延續鏈

IAsyncAction^ SomeClass::func1() { 
    return create_async([this]() 
{ 
    create_task([]() {doTheFirstStuff();}).then([]() {doTheSecondStuff();}); 
}); 
} 

然後

void func2() { 
create_task(someObject->func1()).then([](){doTheLastStuff();} 

我知道這是錯誤的,因爲FUNC2將創建任務,將執行 「doTheLastStuff()」 甚至在 「doTheSecondStuff()」 結束。但是,我怎麼能認爲事實並非如此,並且所有事情都是按照正確的順序完成的?

謝謝你的幫助。

+0

嘗試'返回'你創建的任務, –

回答

0

WinRT異步抽象(IAsyncAction ^)沒有異步步驟鏈的概念,所以一旦你轉換爲那些(使用create_async),你將無法做到這一點。

這就是說我不確定一個併發::任務<>是否支持附加到它;查看任務<>上的方法來查看它支持的內容。