1

我在 dll 中定义了一个方法,如下所示:

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

在不同的项目中,我引用该 dll 并使用 'await' 关键字。我从 Intellisense 得到了这个错误。 在此处输入图像描述

看看那个参考的元数据,我看到了这个

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

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

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

4

1 回答 1

0

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

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

更新:

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

于 2013-11-06T17:34:43.093 回答