2012-09-28 2 views
1

나는 부울 값을 반환해야합니다. 내 메서드 내에서 true 또는 false를 반환하기 위해 비동기 호출을 수행해야합니다. 나는 람다 식 내에서 return 문을 넣어려고했는데, 그것은 반환 형식이 오류리어 asynchorous 호출을 사용하여 return 문을 넣는 방법

bool method() 
{ 
    domaincontext.Load(domaincontext.GetXXX(), 
    loadOperation => 
    { 
    value = ??? 
    }, null); 

    return value; 
} 

답변

1

당신이 그런 식으로 코딩 할 수없는 '무효'입니다 발생합니다. Silverlight는 웹 서비스가 반환 될 때까지 웹 서비스를 쿼리하고 UI를 고정시키지 않습니다. Silverlight의 비동기 모델은 자바 스크립트와 비슷하며 전화를 걸면 결과가 돌아 오면 원하는 작업을 결정할 수 있습니다.

한 가지 방법은 다음과 같이 호출자에 코드를 변경하는 것입니다 :

this.method(result => { 
    if (result) { 
    // Do something 
    } 
}); 

void method(Action<bool> continueWith) 
{ 
    domaincontext.Load(domaincontext.GetXXX(), 
    loadOperation => 
    { 
     value = ???; 
     continueWith(value); 
    }, null); 

    return value; 
} 
+0

덕분에, 모든 것을 설명하는 – uowzd01