WinRT C++ 任务队列

winrt c++ tasks queue

本文关键字:任务队列 C++ WinRT      更新时间:2023-10-16

我需要在 c++/cx 中创建一个任务队列,但由于我的糟糕经验,我不知道怎么做。
目的是:
- 使用 lambda 在某个线程中创建任务("task1 = [] () {}")
- 然后将此任务添加到任务队列,任务队列在其他线程
中执行 - 当任务期望它排队时,它不会执行
- 仅在先前执行的任务之后执行的任务

正如我所得到的,当你使用auto a = concurrency::create_task(lambda)时,它会立即启动。此类任务的延迟启动需要一个指向上一个任务的指针,但我无法获取它,因为我的任务是在单独的线程中生成的。

那么有人可以帮助我解决这个问题吗?

似乎正确使用std::task_group可以解决我的问题。
此外,std::task_handle不会在创建时执行,因此使用它也可以解决我的问题,但它需要自己的队列。