2014-02-06 171 views
2

我必须在这里丢失一些明显的东西。但我不能看到我做错了。 我有以下代码:等待异步WCF方法

var resp = await client.findItemsByCategoryAsync(request); 

但这个代码给我下面的编译器错误: enter image description here

虽然说awaitable我不能使用的await关键字。该方法由WCF服务提供(Ebay Finding API)

+1

阅读错误消息。 '请考虑使用'async'修饰符标记此方法并将其返回类型更改为'Task'' –

+0

请不要发布代码或错误消息的屏幕截图。他们非常难以阅读。将文本复制并粘贴到您的问题中。 –

+1

我写错误信息的人感觉不好。 –

回答

3

包含await运算符的方法也必须声明为async

public async void YourMethodAsync() 
{ 
    var resp = await client.findItemsByCategoryAsync(request); 
} 

错误消息引用了当前的方法,而不是您正在调用的方法等待。

+2

错误消息的良好分析,但op的方法应该返回一个'Task'并以'Async'结束。 –

+0

@StephenCleary用Async结束确实是一个很好的约定,我会编辑答案。但是我会坚持无效,因为它是一个有效的返回类型,我不知道他在做什么。如果他需要,他可以自由返回任务或任务。 –