Windows phone 7 如何在主线程中获得异步结果

Windows phone 7 如何在主线程中获得异步结果,windows-phone-7,Windows Phone 7,我正在Windows Phone 7应用程序上创建登录页。我想在异步线程上从服务器返回登录错误消息时,在登录页面上获取登录错误状态代码 所以我的问题是: 在下面的代码示例中,请让我知道如何在Main方法中获得“responseString(string)” 您可以将responseString定义为类级变量,而不是在GetResponseCallback方法中定义它。这样,就可以从类中的任何位置访问它,而不仅仅是方法范围 要从后台线程导航到另一个页面,可以使用调度程序 //Method

我正在Windows Phone 7应用程序上创建登录页。我想在异步线程上从服务器返回登录错误消息时,在登录页面上获取登录错误状态代码

所以我的问题是: 在下面的代码示例中,请让我知道如何在Main方法中获得“responseString(string)”


您可以将
responseString
定义为类级变量,而不是在
GetResponseCallback
方法中定义它。这样,就可以从类中的任何位置访问它,而不仅仅是方法范围

要从后台线程导航到另一个页面,可以使用
调度程序

    //Method to move to next page. Can be called from GetResponseCallBack
    private void NavigateToNextPage()
    {
        Dispatcher.BeginInvoke(() =>
        {
           NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative"));
        });
    }

我很抱歉。我忘了写代码将挂在“allDone.WaitOne();”中。我不知道为什么,但如果我使用Windows Phone应用程序中的代码,似乎会发生此问题。所以我不能使用你的建议。@okame-在使用异步方法时,有没有理由阻止主线程?另外,您是否成功地得到了回复?是的。我想停止等待异步线程。我等待async thead结果,若登录成功,则转到下一页。首先,您可以调用一个方法,该方法将从
GetResponseCallBack
方法中导航到下一页。导航应该在UI线程上完成(更新的答案)。或者,您可以使用WebClient而不是HttpWebRequest,因为WebClient无论如何都会阻止UI线程。哦,这是个好主意!我试试看!
    //Method to move to next page. Can be called from GetResponseCallBack
    private void NavigateToNextPage()
    {
        Dispatcher.BeginInvoke(() =>
        {
           NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative"));
        });
    }