0

기본적으로 전화 앱에서 WCF 호출을 사용하여 암호를 검색하지만 원하는 경우 실행하지 않습니다. 호출. , 그냥 스킵Windows Phone 7에서 비동기 WCF 호출이 실행되지 않습니다.

는 기본적으로, 나는 사용자가 로그인 버튼을 누를 때, 그것은, 서비스를 호출 암호를 잡은 그러나 비교해야으로 응용 프로그램이

Client.GetPassWordByNameAsync(user); 
     Client.GetPassWordByNameCompleted += new EventHandler<GetPassWordByNameCompletedEventArgs>(Client_GetPassWordByNameCompleted); 


     if(EnteredPassword == password) 
     { 
      isAuthenticated = true; 
     } 

같은 코드를 호출 할 코드와 null을 반환합니다.

void Client_GetPassWordByNameCompleted(object sender, GetPassWordByNameCompletedEventArgs e) 
     { 
      if (e.Error == null) 
      { 

      } 
      else 
      { 
       password = e.Result; 
      } 
     } 

덕분에 많은

답변

1

코드에 모습을 갖는 완성 된 방법이다, 나는보고, 한 손에, 당신은 GetPassWordByNameCompleted 이벤트에 subsbcribe 있음 메소드 호출 후 . 반대로 반환 값을 비교할 때까지 기다리지 않아도됩니다.

Client.GetPassWordByNameCompleted += ((s, e) => 
{ 
    if (e.Error == null) 
    { 

    } 
    else 
    { 
     password = e.Result; 
     if(EnteredPassword == password) 
     { 
       isAuthenticated = true; 
     } 
    } 
}); 
Client.GetPassWordByNameAsync(user); 

를 아니면, 다른 방법의 이벤트 핸들러를 선호하는 경우 먼저 이벤트에 가입 : 다음 코드는 작동합니다

Client.GetPassWordByNameCompleted += new EventHandler<GetPassWordByNameCompletedEventArgs>(Client_GetPassWordByNameCompleted); 
    Client.GetPassWordByNameAsync(user); 

그리고 한 번, 그 결과로 당신이 원하는 무엇이든 할 완성 된 방법 (가 비동기를했기 때문에 그것이 바로 이들에 건너 뛰는했다)

void Client_GetPassWordByNameCompleted(object sender, GetPassWordByNameCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 

    } 
    else 
    { 
     password = e.Result; 
     if(EnteredPassword == password) 
     { 
      isAuthenticated = true; 
     } 
    } 
} 
+0

내가 실제로 이후에 수행 될 필요가 검사를 바꾸어 문제를 해결하고, 그것을 잘 작동합니다 : 당신이 그것을 얻을 수있다. 그러나 null 응답에 대한 문제는 직렬화 오류를 반환하는 결과 때문이었습니다. 그러나 당신의 도움에 감사드립니다. –