private void Btn_Login_Click(object sender, EventArgs e) { // Login if (Txt_User.Text == "") { MessageBox.Show("El campo usuario no puede estar vacio"); return; } Btn_Login.Enabled = false; if (Txt_Pass.Text == "") { if (allowOffline) { var login = new MLogin(); // session = MSession.GetOfflineSession(Txt_User.Text); Session = login.offline(Txt_User.Text); MessageBox.Show("Inicio pirata completado : " + Session.Username); } else { MessageBox.Show("La contraseña no puede estar vacia"); Btn_Login.Enabled = true; return; } } else { var th = new Thread(new ThreadStart(delegate { var login = new MLogin(); var result = login.Authenticate(Txt_User.Text, Txt_Pass.Text); if (result.Result == MLoginResult.Success) { MessageBox.Show("Inicio completado : " + result.Username); Session = result; } else { MessageBox.Show(result.Result.ToString() + "\n" + result.Message); Invoke((MethodInvoker) delegate { Btn_Login.Enabled = true; }); } })); th.Start(); } }