私は Windows ストア アプリ (C++) に取り組んでいます。アプリは Web サービスを使用してデータベースからデータをロードし、そのデータをページに表示したいと考えています。囲んでいる関数内で作成されたクラスのインスタンスに対して関数を呼び出せないのはなぜですか? これが私のアプリの最初のページの LoadState イベントです...
void ItemsPage::LoadState(Object^ navigationParameter, IMap<String^, Object^>^ pageState)
{
(void) pageState;
StorySource^ storysource = ref new StorySource();
task<wstring> (GetFromDB(cancellationTokenSource.get_token()))
.then([this, storysource](task<wstring> response){
try
{
auto resp = response.get();
storysource->Init(resp);
DefaultViewModel->Insert("Items", storysource->AllGroups);
}
catch(COMException^ ex)
{ ... }
});
}
.then() ブロック内で関数を実行できません。GetFromDB() の完了を StorySource::Init() にチェーンし、これを DefaultViewModel->Insert() にチェーンする必要があります。
私は非同期プログラミングに非常に慣れていません。私が間違っていることと、私の問題の解決策を教えてください。前もって感謝します。