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"");
});
我想向 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"");
});