【问题标题】:Unable to use async-await with AcceptTcpClientAsync method无法将 async-await 与 AcceptTcpClientAsync 方法一起使用
【发布时间】:2015-10-28 13:54:51
【问题描述】:

我看到很多类似这里的sn-ps代码:

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:“等待”运算符只能在异步中使用 方法。考虑用'async'修饰符标记这个方法和 将其返回类型更改为“任务”

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

【问题讨论】:

  • 您是否考虑过使用async 修饰符标记该方法并将其返回类型更改为Task?只是一个想法......

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


【解决方案1】:

我做错了什么?

正如错误所说,调用方法需要用async修饰符标记,返回类型为TaskTask<T>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 2019-04-15
    • 2014-06-19
    • 2018-01-14
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多