public void StartConnect(System.Net.IPEndPoint ep, int timesToTry, SockMgrConnectEventHandler externalCallback = null, object externalCallbackState = null) { SockMgrConnectStateObject state = new SockMgrConnectStateObject(); state.externalCallback = externalCallback; state.externalCallbackState = externalCallbackState; _sockBase.StartConnect(ep, timesToTry, ConnectCallback, state); }
private void ConnectCallback(object sender, SocketConnectEventArgs e) { SockMgrConnectStateObject state = (SockMgrConnectStateObject)e.State.externalCallbackState; SockMgrConnectEventArgs arg = new SockMgrConnectEventArgs(this, e.State, state.externalCallbackState); SockMgrConnectEvent?.Invoke(this, arg); if (state.externalCallback != null) { state.externalCallback(this, arg); } _responser.OnSockMgrConnect(this, arg); }