等待异步WCF方法

3

我一定是错过了一些显而易见的东西。但我看不出我哪里做错了。 我有如下代码:

var resp = await client.findItemsByCategoryAsync(request);

但是这段代码给我以下编译器错误: enter image description here 尽管它说是可等待的(awaitable),但我不能使用await关键字。该方法由WCF服务(Ebay Finding API)提供。

1
阅读错误信息。考虑使用“async”修饰符标记此方法,并将其返回类型更改为“Task”。 - L.B
请不要发布代码或错误信息的截图。它们非常难以阅读。请将文本复制并粘贴到您的问题中。 - Esoteric Screen Name
1
我为编写错误消息的人感到难过。 - ta.speot.is
1个回答

4
包含 await 操作符的方法也必须声明为 async
public async void YourMethodAsync()
{
     var resp = await client.findItemsByCategoryAsync(request);
}

错误信息是指当前方法,而不是您在其中调用await的方法。

2
对错误信息的分析很好,但是操作者的方法应该返回一个Task并以Async结尾。 - Stephen Cleary
@StephenCleary 以Async结尾确实是一个好的约定,我会修改答案。但是我会坚持使用void,因为它是一种有效的返回类型,而我不知道方法中正在做什么。如果需要,他可以自由地返回Task或Task<T>。 - Pierre-Luc Pineault

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接