Я создал класс Client, который наследуется от класса ClientBase, как часть моего клиента WCF. Я пытаюсь выяснить, как убедиться, что Соединение не нужно восстанавливать. Я видел, что в перечислении CommunicationState есть все, что мне нужно, наряду с ClientBase.State, однако я не уверен, как заставить его ждать, если он находится в состоянии открытия или что-то подобное ... В основном, если он открыт и нет Я в порядке, но если он делает что-то вроде открытия или создания или еще чего-то, я не хочу создавать новый. В качестве альтернативы, есть ли способ полностью удалить 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...
}
}
}
}