Читаю образец Хило, представленной МС, при ImageBrowserViewModel.cpp есть некоторый код, я не понимаю:многопоточности в Windows Store приложения
// Observe the update after waiting the specified amount of time.
create_task([timeToWait]() {
assert(IsBackgroundThread());
::wait(timeToWait);
}).then([weakThis]() {
assert(IsMainThread());
auto vm = weakThis.Resolve<ImageBrowserViewModel>();
if (nullptr != vm)
{
vm->ObserveFileChange();
vm->m_hasFileUpdateTask = false;
}
}, task_continuation_context::use_current()).then(ObserveException<void>(m_exceptionPolicy));
Квест приложение использование IsBackgroundThread()
& IsMainThread()
утверждать, что должно быть правильно вызывается в определенном контексте. Но для вызова функции ::wait(timeToWait)
нет task_continuation_context
, определенного для того, чтобы убедиться, что он работает в фоновом режиме, мне просто интересно, как это работает? Большое спасибо!