无法使用AcceptTcpClientAsync方法使用async-await

时间:2015-10-28 13:54:51

标签: c# asynchronous network-programming async-await

我在这里看到了很多代码片段:

TcpClient client = await listener.AcceptTcpClientAsync();
Logger.Info("Client accepted");

https://codereview.stackexchange.com/questions/33748/wpf-async-await-tcpclient-tcplistener-sample

var tcpClient = await listener.AcceptTcpClientAsync();
HandleConnectionAsync(tcpClient);

https://bsmadhu.wordpress.com/2012/09/29/simplify-asynchronous-programming-with-c-5-asyncawait/

它似乎适用于大多数人。不幸的是,它对我不起作用 - 编译器给我以下错误:

  

错误CS4033:'await'运算符只能在异步中使用   方法。考虑使用'async'修饰符标记此方法   将其返回类型更改为“任务”

我做错了什么?我该如何解决?

1 个答案:

答案 0 :(得分:3)

  

我做错了什么?

正如错误所述,调用方法需要使用async修饰符进行标记,并且返回类型为TaskTask<T>:< / p>

public async Task ConnectAsync()
{
    TcpClient client = await listener.AcceptTcpClientAsync();
    Logger.Info("Client accepted");
}