当另一个项目引用时,async方法不会显示为异步

时间:2013-11-06 17:30:15

标签: c# .net-4.5 async-await

我在dll中定义了一个方法:

public async Task<bool> ConnectAsync(PtiType clientType, PtiType communicationType,string serverIp,int portNum= 3200)

在不同的项目中,我引用该dll并使用'await'关键字。我从Intellisense得到了这个错误。 enter image description here

看一下该参考的元数据,我看到了这个

[DebuggerStepThrough]
public Task<bool> ConnectAsync(PtiType clientType, PtiType communicationType, string serverIp, int portNum = 3200);

我的async关键字发生了什么变化?

更新: 我正在为这两个项目使用.NET 4.5。

1 个答案:

答案 0 :(得分:0)

为了能够使用等待,您的调用者(不仅称为一个(在您的情况下))方法也必须标记为异步。

public async void YorCaller()
{
    var result = await ConnectAsync(...);
}

更新

正如评论中正确提到的那样,被调用的方法实际上不必标记为“异步”(如果它不使用任何'await'操作) - 我只是提到“不仅仅是。 ..一个“参考这个样本。