2011-12-12 3 views
0

현재 내가 실행하고있어 DB 쿼리이 방법 :db 쿼리가 완료 될 때까지 어떻게 대기해야합니까?

_svc = new Service1Client(); 
_svc.GetStateCompleted += new EventHandler<GetStateCompletedEventArgs>(_svc_GetStateCompleted); 

    private void _svc_GetStateCompleted(object sender, userdetCompletedEventArgs e) 
    { 
     //some code 
    } 

쿼리 함수를 호출,

_svc.GetStateAsync(args); 
//more code 

는 서비스 함수가 ​​값을 반환 때까지 내가 GetStateAsync 후 기다릴 수 어쨌든 있나요?

+0

모든 작업을 비동기 적으로 실행하고 완료 될 때까지 기다리지 않아야합니다. 응답을 객체에 할당 한 다음 변경 사항을 확인하십시오. –

+1

이 질문은 Windows Azure 플랫폼 및 SQL Azure와 어떤 관련이 있습니까? 그것은 일반적인 비동기/동기화 질문이며 응답은 기본 데이터베이스 또는 플랫폼 배포에 관계없이 동일해야합니다. 또한 연결이 끊어진 클라이언트를 사용하여 작업이 끝날 때까지 UI를 차단하는 것은 좋지 않습니다. 일반적으로 UI를 차단하는 것은 좋지 않습니다 (어떤 작업이 끝나기를 기다릴 때 발생). 저것은 비동기 프로그래밍이 거기 밖으로있는 방법이다. – astaykov

+0

당신이 가진 것은 올바른 방법입니다. 어떤 문제를 해결하려고합니까? – ChrisF

답변

0

일반적으로 장기 실행 작업이 완료 될 때까지 기다리지 마십시오. 이를 달성 할 수있는 방법이 있지만 일반적으로 사용자가 완료 할 때까지 응용 프로그램과 상호 작용하지 못하도록하려는 경우 - 작업이 완료 될 때까지 모든 입력을 비활성화하고 진행률 표시기를 표시합니다.

관련 문제