为什么当我使用 async/await 登录时,"main"表单没有响应?


public class Administration
{
public static async Task<bool> Login(string username, string password)
{
var context = new EmployeeManagementEntities();
var user = await Task.Run(() => context.Users.Where(t => t.Username == username && t.Password == password && t.Status == (int)Status.Active).FirstOrDefault());
if (user != null)
{
frmMain.CurrentUser = user;
return true;
}
else
{
return false;
}
}
}
private async void btnLogin_Click(object sender, EventArgs e)
{
if (AreValid())
{
if (await Administration.Login(txtUsername.Text, txtPassword.Text))
{
var main = new frmMain();
this.Hide();
main.ShowDialog();
this.Close();
}
else
{
lblUP.Visible = true;
}
errorProvider1.Clear();
}
}

我想让Loginform在我按下login时响应,在我按下登录后,表单会变为响应,但一旦加载main from,它就会在几分钟内变为不响应。

Administration类是在解决方案资源管理器的类文件夹中创建的,我在Form中调用它,因为它是静态的。

谢谢你的建议!

var user = await context.Users.Where(t => t.Username == username && t.Password == password && t.Status == (int)Status.Active).FirstOrDefaultAsync();

最新更新