MS が提供するサンプル Hilo を読んでいます。ImageBrowserViewModel.cpp の下に、理解できないコードがあります。
// 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
、バックグラウンドで実行されることを確認するための定義はありません。どうすれば機能するのでしょうか?? どうもありがとう!