2011-01-10 3 views
3

이제 WCF RIA Services 및 Silverlight를 시작합니다.WCF RIA Services - 모든 데이터로드시 조치 수행

다음은 내가해야 할 일입니다. 데이터를로드하려면 내 도메인 서비스에 대한 호출을 두 번해야합니다. 그래서 Context 객체에서 Load() 메서드를 사용하고 있습니다.

모든 쿼리가 완료되면 약간의 조치가 필요합니다. 각 개별로드에 대해 콜백을 지정할 수 있음을 알지만, 실제로 수행하고자하는 것은 모든로드가 완료 될 때 실행될 콜백을 등록하는 것입니다.

RIA 서비스/Silverlight에서이 작업을 수행 할 수있는 기본 제공 방법이 있습니까? 아니면 직접 롤백해야합니까?

BTW : 데이터가로드 될 때까지 양식을 대화식으로 사용하고 싶지 않습니다. UI 스레드를 차단하고 싶지 않습니다. 모든 데이터가로드 될 때까지 진행 막대/춤추는 햄스터)

답변

2

http://blogs.msdn.com/b/smccraw/archive/2009/07/15/a-net-ria-services-data-load-batch-manager.aspx은 나를 잘 처리했습니다.

사용자가 페이지와 상호 작용하지 못하도록하려면로드 중 앱을 차단하는 활동 표시기 (지금은 Silverlight Toolkit에있는 것 같습니다)를 사용하십시오.

+0

그 코드는 내가 염두에 두었던 것을 거의 완성했습니다. 그것은 잠재적 인 경쟁 조건을 가지고 있지만. 로드가 즉시 실행되므로 가능성은 없지만 일괄 처리 관리자에로드를 추가하기 전에로드가 완료 될 수 있습니다. 관리자가 "보았다"고 비명을 지르면 완료 이벤트가 조기에 제기 될 수 있습니다. – JMarsch

+0

글쎄, 추가 연구 후, 내 이전의 코멘트를 무시. 로드가 즉시 실행되지는 않지만로드 된 메소드에서 돌아온 후에는 해당 코드에 경쟁 조건이 있다고 생각하지 않습니다. – JMarsch

1

자신을 굴릴 필요가있는 것은 아무것도 없습니다.

쿼리가 시작될 때마다 카운터가 부딪치게되고 콜백 내부에서 다시 감소하게됩니다. 0을 건드린다면 더 이상의 미해결 요청이 없다는 이벤트를 발생시킵니다.

+0

저도 그렇게 보였습니다. 그래서 이상한 일을하고 있는지 궁금하게 생각합니다. 내 목표는 단순히 모든 데이터가로드 될 때까지 사용자가 양식과 상호 작용하지 않아야한다는 것입니다. 내가해야하는 다른 방법이 있습니까? – JMarsch

+0

생성 된 코드에 의해 자동으로 추가되는 것이 좋을 것 같은 소리를 들려줍니다. 하지만 대신 직접 추가해야합니다. 부끄러운 줄 알아. –

0

다음과 같이 입력 하시겠습니까? link?

+0

CTP에 대해 읽었습니다.이 구문이 Silverlight의 모델에 어떻게 도움이되는지 확실히 알 수 있습니다. 아마도이 프로젝트에서 CTP를 사용할 수 없을 것입니다. ISV이고, 소프트웨어가 현장에 설치되어 있으며 사전 릴리스 기술에 의존 할 수 없습니다. 그것은 확실히 멋진 물건이다. – JMarsch

관련 문제