0
WP7에서 로깅 작업에 문제가 있습니다. LogInButton을 클릭하면 프롬프트에서 값을 가져 오지 않습니다 = 프록시에서 e.Result. 비동기 호출이 끝날 때까지 대기하려면 어떻게해야합니까? 내가 스레드에 관한. 수면하지만 난 그것을 몇 가지 작업이 여전히 실행되고 있는지, WP 7.async가 값을 얻을 때까지 대기 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
하지만 클릭하면 "로그인에 실패했습니다"라는 메시지가 표시되고 잠시 다음 버튼을 눌러 다음 창으로 전달해야합니다. 어쩌면 비동기를 완료하고 결과를 전달하는 방법이 있을까요? – bohunn
'.NET Framework 4.0'을 대상으로 할 수 있다면 Task.WaitAll을 사용하여이 작업을 수행 할 수 있어야합니다. Windows Phone 7.8 SDk가 출시 될 때까지 기다려야 할 수도 있습니다. 이미 릴리스되었습니다 : http://www.microsoft.com/en-us/download/details.aspx?id=36474 –