繁体   English   中英

等待异步获得价值Windows Phone 7

[英]Waiting until async gets value Windows Phone 7

我在WP7中记录操作有问题。 当我单击LogInButton时,没有值提示= e.Result在代理中。 等待异步呼叫结束该怎么办? 我虽然关于线程。 睡觉,但我想它在WP 7中无法完成。

namespace WP7App
{
 public partial class MainPage : PhoneApplicationPage
{
    bool prompt;
    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }
    // login operation
    private void Log(string username, string passwd)
    {
        Service1Client proxy = new Service1Client();
        proxy.LogInCompleted += new
        EventHandler<LogInCompletedEventArgs>(proxy_LogInCompleted);
        proxy.LogInAsync(username, passwd);

    }
    public void proxy_LogInCompleted(object sender, LogInCompletedEventArgs e)
    {
        prompt = e.Result;              
    }
    //button action
    void LogInButton_Click(object sender, RoutedEventArgs e)
    {
        if (LoginBox.Text == null) { MessageBox.Show("please fill login box"); }
        if (PasswdBox.Password == null) { MessageBox.Show("enter your password"); }
        string login = LoginBox.Text;
        string passwd = PasswdBox.Password;            
        Log(login, passwd);
        if (prompt == true)
        {
            NavigationService.Navigate(new Uri("/Pages/MainLogged.xaml", UriKind.Relative));
        }
        else
        {
            MessageBox.Show("logging failed");
        }
    }                            
}

}

您唯一要做的就是仅提供用户信息,表明某些操作仍在运行。

如果确实需要(操作结果对于应用程序来说是必需的),则可以通过某种方式来完成操作,从而阻止用户进行其他操作(例如全屏面板,应在启动异步操作之前显示该面板,并在完成异步操作后关闭它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM