繁体   English   中英

ClientBase:如何等待它完成打开?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM