private AsyncResult Transmit(Packet packet, string nexonID, string characterID, AsyncCallback callback, object state) { AsyncResult asyncResult = new AsyncResult(nexonID, characterID, callback, state); Connection.Key key = new Connection.Key { NexonID = asyncResult.NexonID, CharacterID = asyncResult.CharacterID }; if (!this.IsConnected || this.queries.ContainsKey(key)) { asyncResult.Complete(true); return(asyncResult); } this.queries.Add(key, asyncResult); this.Transmit(packet); return(asyncResult); }