调用create_task时是否有办法确保任务不在UI线程上运行?
我想确保我不会无意中在某个以某种方式设法在UI线程上执行的任务中调用wait。
答案 0 :(得分:2)
create_task函数不会自发地跳转到UI线程:如果你不从UI线程调用它,它就不会在那里执行。您需要显式调用Dispatcher才能返回。
如果没有提供task_continuation_context来告知它,则默认情况下,公寓感知任务(返回IAsyncAction或IAsyncOperation的任务)将在其公寓中继续。在UI线程上启动任务的常见情况将在UI线程上继续。
有关详细信息,请参阅MSDN的Asynchronous programming in C++文档的管理线程上下文部分。