2012-03-07 10 views
2

現在クラウド/アジレスとWindows Phone 7のプロジェクトで作業していますが、サービスを呼び出す必要があります。休憩シャープで非同期メソッドが終了していることを確認してください

私にとっては便利ですが、私は鋭い休息を使用しますが、問題に直面しています。 私のアピールがいつ完了したのか分かりません。

この例では、このメソッドはserviceへの呼び出しを行う前に最初の "resp"を返します。 respが満たされないうちにこのメソッドを終了しないようにするにはどうすればよいですか?

+0

なぜすべてが2回繰り返されますか? –

+4

なぜすべてが2回繰り返されますか? –

答えて

7
EventWaitHandle Wait = new AutoResetEvent(false); 

client.ExecuteAsync(request, response => 
{ 
    if (response.ResponseStatus == ResponseStatus.Completed) 
    { 
     RestResponse resource = response; 
     string content = resource.Content; 
     resp = Convert.ToBoolean(JsonHelper.FromJson<string>(content)); 
     Wait.Set(); 
    } 
}); 

Wait.WaitOne(); 
+0

このテクニックは解決策の一部であるように見えますが、Wait.WaitOne(); ' に戻り、' Wait.Set();によって返されません。 – David

+2

バックグラウンドスレッドから呼び出す必要があります – Ku6opr

+0

ありがとうそれは助けます – David

関連する問題