.Net 웹 서비스를 사용하는 Windows Phone 앱을 개발 중입니다. 웹 서비스 메서드를 비동기 적으로 호출하고 UI를 차단하지 않습니다. 예를 들어, 서버에 항공편 도착 목록을 요청하는 코드 샘플은 다음과 같습니다.Windows Phone에서 async webservice 호출 취소하기
service.MobileWSSoapClient Proxy { get; set; }
Proxy = new service.MobileWSSoapClient();
Proxy.GetArrivalsCompleted += proxy_GetArrivalsCompleted;
Proxy.GetArrivalsAsync(searchFilter);
내가 다시 같은 방법으로 또는 다른 하나 (예 : 도착 목록을 새로 고치거나 특정 도착 검색)를 호출하는 사용자에게 자유를 줄이 길. 사용자가 서비스에 대한 새 호출을 생성하는 경우 앱은 첫 번째 호출을 "취소"하고 마지막 호출의 결과 만 표시해야합니다. 웹 서비스 호출을 서버에 이미 취소했다면 기술적으로 불가능하다고 생각합니다. 서버 응답을 기다린 다음 무시해야합니다. 그것을 알면, 어떻게 든 그 전화를 쓸모없는 것으로 표시하는 것이 도움이 될 것입니다. 해당 쓸모없는 호출의 응답으로 오류를 수신하면 충분합니다. 내가 상상하거나 필요로하는 의사 코드를 쓸 것이다.
void proxy_GetArrivalsCompleted(object sender, service.GetArrivalsCompletedEventArgs e){
if (e.Error == null){
// DO WORK
}
else
{
if(e.Error == Server Exception || e.Error == Connection Exception){
MessageBox.Show("error");
}
else if (e.Error == obsolete call){
// DO NOTHING
}
}
미리 감사드립니다.
내가 BackgroundWorker에서 웹 서버를 호출하면 호출하고 작업을 종료합니다. 그것이 서버 응답 때까지 기다리지 않는다는 것을 의미합니다. – nachoifa