尝试使用某些async
方法时出现以下错误。我正在关注此示例:Microsoft Async Example
'await'运算符只能在异步方法中使用
'await'的方法在IS async中,我认为它与Microsoft示例几乎相同。
我在这里做错了什么?
按钮点击
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;
}
}
答案 0 :(得分:2)
如果方法签名没有await
,则无法async
。
async
private void btn_Async_Click(object sender, EventArgs e)
应该是:private async void btn_Async_Click(object sender, EventArgs e)
尝试一下,或者从那个中调用异步方法。