winrt/c++: 等待分派任务的结果

winrt/c++: await result from dispatched task

我想向 UI 线程分派一个作业,然后等待结果并从另一个线程使用它。像这样,但是 co_await 在 lambda 内部不起作用:

dispatcher.RunAsync(CoreDispatcherPriority::Normal, [&]() {
    auto res = co_await mStoreContext.RequestPurchaseAsync(L"");
});

或者甚至等待整个 RunAsync 操作,如果我能从中得到结果的话

那是因为 void 不能用作协程的 return 值(如果你使用我的 my library 我可以)。

尝试 return 改为 std::future<void>

dispatcher.RunAsync(CoreDispatcherPriority::Normal, [&]() -> std::future<void> {
    auto res = co_await mStoreContext.RequestPurchaseAsync(L"");
});