0
我在WP7中的日誌記錄操作有問題。當我單擊LogInButton時,它不會在代理中獲得提示= e.Result的值。我可以做些什麼等待異步呼叫結束?我雖然關於線程。睡覺,但我想這是不能夠在WP 7等待,直到異步獲得價值Windows Phone 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");
}
}
}
}
異步的重點在於你無法做到這一點。 – SLaks 2013-02-22 19:08:41
但是,當我點擊它顯示「登錄失敗」的消息,我必須保持按鈕一會兒,將其傳遞到下一個窗口。也許有一種方法可以完成異步並傳遞結果? – bohunn 2013-02-22 19:16:02
如果您可以定位'.NET Framework 4.0',則應該可以使用Task.WaitAll完成此操作。您可能不得不等待「Windows Phone 7.8 SDk」發佈。它已經發布:http://www.microsoft.com/en-us/download/details.aspx?id=36474 – 2013-02-22 19:55:19