public Task<ServiceInfo[]> LookupAsync(string name, string group) { if (name == null) return Task.FromResult((ServiceInfo[])null); EnsureStartComplete(); var key = new ServiceIdentifier(name, group); var url = _serviceAddressDictionary.GetOrAdd(key, key1 => { try { var urls = LookupInternalAsync(key1); var item = new ClientLookupItem { ClientInfo = key1, Addresses = urls.Result, }; return item; } catch (AggregateException ex) { var kex = ex.InnerException as KeeperException; if (kex?.getCode() == KeeperException.Code.SESSIONEXPIRED) { if (_startTask?.IsCompleted == true) _startTask = Start(); } throw ex.InnerException; } }); return Task.FromResult(url?.Addresses); }
public Task <ServiceInfo[]> LookupAsync(string name, string group) { if (name == null) { return(Task.FromResult((ServiceInfo[])null)); } EnsureStartComplete(); var key = new ServiceIdentifier(name, group); var url = _serviceAddressDictionary.GetOrAdd(key, key1 => { try { var urls = LookupInternalAsync(key1); var item = new ClientLookupItem { ClientInfo = key1, Addresses = urls.Result, }; return(item); } catch (AggregateException ex) { var kex = ex.InnerException as KeeperException; if (kex?.getCode() == KeeperException.Code.SESSIONEXPIRED) { if (_startTask?.IsCompleted == true) { _startTask = Start(); } } throw ex.InnerException; } }); return(Task.FromResult(url?.Addresses)); }