我有一个WCF webservice(不在我的控制范围内),它实现了我需要通过IsOneWay=true + 回调接口访问的功能之一。回调接口的其中一个方法通知处理完成。由于最初设计用于从GUI中访问,因此被编写成这种方式。
然而,我需要从控制台应用程序中访问同一方法以供批处理使用。目前我粗略地实现这一点的方法是将标志设置为false,并在调用WCF方法后实现一个while循环,其中包含一个简短的Thread.Sleep()调用。这显然可以工作,但似乎是实现最终结果的一种非常糟糕的方式。
我想知道正确的做法是什么。注意:服务不在我的控制范围内,尽管我可以轻松地通过IDE添加引用,但我可以很容易地创建代码实现等。
然而,我需要从控制台应用程序中访问同一方法以供批处理使用。目前我粗略地实现这一点的方法是将标志设置为false,并在调用WCF方法后实现一个while循环,其中包含一个简短的Thread.Sleep()调用。这显然可以工作,但似乎是实现最终结果的一种非常糟糕的方式。
我想知道正确的做法是什么。注意:服务不在我的控制范围内,尽管我可以轻松地通过IDE添加引用,但我可以很容易地创建代码实现等。
ManualResetEvent.WaitOne
的重载吧。你甚至可以设置超时时间,以防止应用程序在出现错误时永远等待。 - Stephan