重複の可能性:
Silverlight 4 を使用したこの同期呼び出しで、ManualResetEvent が機能しないのはなぜですか?
MainPage.Xaml.cs に以下のコードがあります
ManualResetEvent wait = new ManualResetEvent(false);
Service1Client wcf = new Service1Client();
wcf.DoWorkCompleted += (o, ev) =>
{
int s = (int)ev.Result;
wait.Set();
};
wcf.DoWorkAsync();
wait.WaitOne();
//My other part of code where I'd like the value of `int s`.
....
Service1.svc.cs には次のコードがあります。
public class Service1 : IService1
{
public int DoWork()
{
return 5;
}
}
完了するまでDoWork
コードを待機させたいので、このコードを作成しました。ただし、命令の後WaitOne
(Service1.svc.cs) メソッドDoWork()
はまったく呼び出されません。アプリケーションはそこにとどまり、何もしません。以前、SilverLight 4 の別のマシンでこれに取り組んだことがありますが、期待どおりに機能していました。現在、SilverLight 3 を使用しています。