异步/等待方法出错

本文关键字:出错 方法 等待 异步 | 更新日期: 2023-09-27 18:20:10

我在尝试一些async方法时遇到以下错误。我正在使用以下示例:Microsoft异步示例

"await"运算符只能在异步方法中使用

方法"等待"是在is异步中,我认为它与微软的例子非常相似。

我在这里做错了什么?

按钮点击

private void btn_Async_Click(object sender, EventArgs e)
    {
        GeneralFeatures gf = new GeneralFeatures();
        Task<long> getLongRunningData = gf._Async();
        long answer = await getLongRunningData ;
    }

异步方法

class GeneralFeatures
{
public async Task<long> _Async()
    {
        /////  LONG RUNNING TASK  /////////
        int count = 0;
        int j = 1101000;
        long a = 2;
        while (count < j)
        {
            long b = 2;
            int prime = 1;// to check if found a prime
            while (b * b <= a)
            {
                if (a % b == 0)
                {
                    prime = 0;
                    break;
                }
                b++;
            }
            if (prime > 0)
                count++;
            a++;
        }
        /////  LONG RUNNING TASK  /////////
        return a;
    }
}

异步/等待方法出错

如果方法签名没有async,则不能有await

private void btn_Async_Click(object sender, EventArgs e) 中没有async

应该是:private async void btn_Async_Click(object sender, EventArgs e)尝试一下,或者从中调用一个异步方法。