当前位置:  开发笔记 > 编程语言 > 正文

如何调用async Task <bool>方法?

如何解决《如何调用asyncTask<bool>方法?》经验,为你挑选了1个好方法。

这是我创建的异步函数,这里在将这个函数强加到按钮上时出现错误.

public async Task Login(string UserName, string Password)
    {
        try
        {
            ParseUser User = await ParseUser.LogInAsync(UserName, Password);
            System.Windows.Forms.MessageBox.Show(User.ObjectId);
            var currentUser = ParseUser.CurrentUser;
            return true;
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
            return false;
        }           
    }

调用时收到错误.

private void btnLogin_Click(object sender, EventArgs e)
    {
        if (Login(txtUserName.Text,txtPassword.Text))
        {
            MessageBox.Show("Login Success");                       
        }            
    }

Yacoub Massa.. 6

您需要异步等待这样的Login方法:

private async void btnLogin_Click(object sender, EventArgs e)
{
    if (await Login(txtUserName.Text,txtPassword.Text))
    {
        MessageBox.Show("Login Success");                       
    }            
}

现在,此事件处理程序是异步的(通过使用async关键字)并且它异步地等待该Login方法(通过使用await关键字).

请注意,一般情况下,不建议使用async void方法.但是,此规则的一个例外是事件处理程序.所以这段代码很好.



1> Yacoub Massa..:

您需要异步等待这样的Login方法:

private async void btnLogin_Click(object sender, EventArgs e)
{
    if (await Login(txtUserName.Text,txtPassword.Text))
    {
        MessageBox.Show("Login Success");                       
    }            
}

现在,此事件处理程序是异步的(通过使用async关键字)并且它异步地等待该Login方法(通过使用await关键字).

请注意,一般情况下,不建议使用async void方法.但是,此规则的一个例外是事件处理程序.所以这段代码很好.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有