无法将异步等待与AcceptTcpClientSync方法一起使用

本文关键字:方法 一起 AcceptTcpClientSync 异步 等待 | 更新日期: 2023-09-27 18:19:34

我看到了很多像这里这样的代码片段:

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"修饰符标记此方法,并将其返回类型更改为"任务"

我做错了什么?我该怎么修?

无法将异步等待与AcceptTcpClientSync方法一起使用

我做错了什么?

与错误状态完全一样,调用方法需要用async修饰符进行标记,并且返回类型为TaskTask<T>:

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