параллелизм — C ++ Добавить цепочку продолжения из функции в потоке пользовательского интерфейса

Есть ли способ отправить цепочку продолжения (которую я создал в какой-то функции) в другую функцию и добавить ее туда?
лайк

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

а потом

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

Я знаю, что это неправильно, потому что func2 создаст задачу и выполнит doTheLastStuff () даже до завершения doTheSecondStuff (). Но как я могу понять, что это не так и что все сделано в правильном порядке?

Спасибо за помощь.

0

Решение

В асинхронных абстракциях WinRT (IAsyncAction ^) отсутствует концепция цепочки асинхронных шагов, поэтому после преобразования в них (с помощью create_async) вы не сможете.

Тем не менее, я не уверен, если параллелизм :: задача<> поддерживает добавление к нему либо; поиск методов на задании<> Чтобы увидеть, что он поддерживает.

0

Другие решения


По вопросам рекламы [email protected]