public void Login(string username, string password, LoginCallback callback) { IsConnected = false; _loginResultCallback = callback; ConnectDoneCallback connectComplete = delegate(bool succ, string msg) { if (succ) { // keep async reading StartReading(); // REAL log in ReqLogin req = new ReqLogin(); req.client = "Quick Arbitrage client"; req.ip = "127.0.0.1"; req.username = username; req.password = password; RequestLogin(req); } else { callback(false, msg); } }; ConnectAsync(new ConnectDoneCallback(connectComplete)); }