你几乎翻译正确了
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
HttpResponseMessage response =
new HttpResponseMessage(HttpStatusCode.InternalServerError);
response.Content = new StringContent(Content);
response.RequestMessage = Request;
return Task.FromResult(response);
}
作为
Public Async Function ExecuteAsync(ByVal cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
Dim response As HttpResponseMessage = New HttpResponseMessage(HttpStatusCode.InternalServerError)
response.Content = New StringContent(Content)
response.RequestMessage = Request
Return Task.FromResult(Of HttpResponseMessage) (response) 'this line shows error
End Function
唯一的错误是增加了
Async
原版中没有,因此应删除:
Public Function ExecuteAsync(ByVal cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
Dim response As HttpResponseMessage = New HttpResponseMessage(HttpStatusCode.InternalServerError)
response.Content = New StringContent(Content)
response.RequestMessage = Request
Return Task.FromResult(Of HttpResponseMessage) (response) 'this line shows error
End Function
异步的
不是方法签名的一部分,也不是编写可用于
await
-只要方法返回
Task
可以等待。
C原件不使用
async
在它的定义中,因为它实际上是同步的(你的vb翻译也是同步的)。使用
异步的
在这个函数上只会导致
compiler warning
,需要拆除
异步的
.
使用
Task.FromResult(Of HttpResponseMessage) (response)
is correct
甚至可以简化为
Task.FromResult(response)
因为编译器能够推断类型。
如果对你来说它显示了一个错误关于
FromResult
不是的成员
任务
(哪个)
certainly is
)必须有另一个名为的类
任务
在解决方案中定义的
System.Threading.Tasks.Task
班级。在这种情况下,以更详细的方式引用它,例如
Tasks.Task.FromResult(response)
或
Threading.Tasks.Task.FromResult(response)
.