public bool BsgPutItem(string key, TItem item) { lock (_object) { TClientInfo clientInfo = _setClient.getClient(); if (!clientInfo.isOpen()) { clientInfo.doOpen(); } if (!clientInfo.sureOpen()) { Thread.Sleep(1 * 100); if (!clientInfo.sureOpen()) { Console.WriteLine("Can't open"); return(false); } } _aClient = (TStringBigSetKVService.Client)clientInfo.getClient(); var bsPutItemAsync = _aClient.bsPutItemAsync(key, item); if (bsPutItemAsync.IsCompleted == false) { bsPutItemAsync.Wait(); if (bsPutItemAsync.IsCompleted == false) { return(false); } } clientInfo.cleanUp(); return(true); } }