调用Lambda [C ++ / CX]中的其他函数

时间:2013-04-04 11:42:10

标签: asynchronous windows-8 windows-store-apps c++-cx

我正在开发Windows应用商店应用(C ++)。该应用程序使用Web服务从数据库加载数据,我希望该数据显示在页面上。 为什么我不能调用函数w.r.t在封闭函数内创建的类的实例?这是我的应用程序第一页的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-&gt; Insert()。

我是异步编程的新手。请解释一下我做错了什么,以及解决问题的方法。提前谢谢。

0 个答案:

没有答案