首页 > 解决方案 > 在 C++/UWP 中创建任务

问题描述

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

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

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

标签: uwpvisual-studio-2019c++-cxiasyncoperation

解决方案


目前尚不清楚 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);

推荐阅读