[英]ClientBase: How do I wait for it to finish opening?
我建立了一个继承自ClientBase类的Client类,作为WCF Client的一部分。 我试图弄清楚如何确保不需要重新建立连接。 我确实看到CommunicationState枚举具有所需的内容以及ClientBase.State,但是我不确定如果它处于Opening状态或类似的状态,如何使它等待...基本上,如果它处于Opened状态而不是锁定我很好,但是如果它正在执行“打开”或“创建”之类的操作,那么我就不必创建一个新的。 另外,有什么办法可以全部删除“ Timeout”,并在应用程序关闭时让它关闭连接?
private static MyClient _client;
public static MyClient Client
{
get
{
if (_client != null)
{
lock(_client)
{
//How do I ensure that I can return a MyClient that is in Opened state??
//If it's doing something like Opening I don't wanna create a new one...
}
}
}
}
从CommunicationObject (基于ClientBase的MSDN)上的MSDN上,可以安全地在已经打开或打开的连接上调用Open()
。 它会通过已经打开的连接,或者等待连接完成打开(如果尚未完成)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.