我想将作业分派到UI线程,然后等待结果并从另一个线程使用它。这样,但是co_await在lambda内部不起作用:
dispatcher.RunAsync(CoreDispatcherPriority::Normal, [&]() {
auto res = co_await mStoreContext.RequestPurchaseAsync(L"");
});
或者什至等待整个RunAsync操作,如果我可以从中得到结果
答案 0 :(得分:1)
这是因为void
不能用作协程的返回值(如果您使用我的my library可以这样)。
尝试返回一个std::future<void>
:
dispatcher.RunAsync(CoreDispatcherPriority::Normal, [&]() -> std::future<void> {
auto res = co_await mStoreContext.RequestPurchaseAsync(L"");
});