Создание задачи в C++/UWP

Я пытаюсь создать задачу в VS2019 UWP C++. У меня есть код:

IAsyncAction ^frame;
auto frame_task = create_task(frame);
frame_task.then([this]()
    {
        // Noop
    });

Я хочу создать бесконечный цикл, который периодически обрабатывает кадры там, где находится Noop. Этот код компилируется, но выдает исключение и утверждает, что это NULL. Возможно, я не предоставляю возвращаемое значение лямбды? Любые предложения приветствуются. благодаря

1 ответ

Решение

Непонятно, для чего предназначен IAsyncAction в этом контексте. Если вы используете код как есть, должно быть сгенерировано исключение, потому что "frame" равен nullptr. Если вы просто хотите создать простую задачу, поместите лямбда-выражение прямо в create_task().

auto frame_task = create_task([this]()
{
    // Noop
});

... Или иначе, если вам также нужно получить IAsyncAction, используйте вместо этого create_async() и оберните его задачей.

IAsyncAction ^frame = create_async([this]()
{
    // Noop
});
auto frame_task = create_task(frame);
Другие вопросы по тегам