在 C++/UWP 中创建任务

Creating task in C++/UWP

我正在尝试在 VS2019 UWP C++ 中创建任务。我有这段代码:

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

我想要做的是有一个无限循环,在 Noop 所在的位置定期进行帧处理。此代码编译但抛出异常并声明这是 NULL。也许我没有为 lambda 提供 return 值?欢迎任何建议。谢谢

不清楚 IAsyncAction 在该上下文中的用途。如果您按原样使用代码,则会抛出异常,因为“框架”是 nullptr。如果你只是想创建一个简单的任务,直接把lambda表达式放在create_task().

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

... 或者,如果您也需要获取 IAsyncAction,请改用 create_async() 并将其包装在任务中。

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