public Task <List <WorldInfo> > GetWorlds() { if (State != ClientState.LobbyServerCharacterListReceived) { throw new InvalidOperationException("Client has not received characters"); } var tcs = new VirtualTCS <List <WorldInfo> >(); ActiveTask = tcs; State = ClientState.LobbyServerWorldListInProgress; LobbyClient.GetWorldList(); return(tcs.Task); }