Есть ли способ отправить цепочку продолжения (которую я создал в какой-то функции) в другую функцию и добавить ее туда?
лайк
IAsyncAction^ SomeClass::func1 () {
return create_async([this]()
{
create_task([]() {doTheFirstStuff();}).then([]() {doTheSecondStuff();});
});
}
а потом
void func2 () {
create_task(someObject->func1()).then([](){doTheLastStuff();}
Я знаю, что это неправильно, потому что func2 создаст задачу и выполнит doTheLastStuff () даже до завершения doTheSecondStuff (). Но как я могу понять, что это не так и что все сделано в правильном порядке?
Спасибо за помощь.
В асинхронных абстракциях WinRT (IAsyncAction ^) отсутствует концепция цепочки асинхронных шагов, поэтому после преобразования в них (с помощью create_async) вы не сможете.
Тем не менее, я не уверен, если параллелизм :: задача<> поддерживает добавление к нему либо; поиск методов на задании<> Чтобы увидеть, что он поддерживает.