无法使用'wait'在非'async'方法

本文关键字:在非 async 方法 wait | 更新日期: 2023-09-27 18:08:05

我正在开发Windows phone 8,并试图使用Windows连接到服务器。网络名称空间。(系统。网络套接字在wp8中并不真正支持),所以我调用来建立连接:

socket.ConnectAsync(e);

并且我得到错误"因为这个调用不是等待的,执行的…"这是公平的,因为这里应该使用await关键字。但是,当我在

中添加这个时:
await socket.ConnectAsync(e);

我得到错误:" 'await'操作符只能在async方法中使用。"

这不仅仅是有点令人沮丧。我不能对我调用的方法进行修改,因为这是一个预编译的函数,签名是:

public IAsyncAction ConnectAsync(EndpointPair endpointPair);

我该怎么做?在我有限的理解中,这似乎是。net的一个问题,让我发疯!

无法使用'wait'在非'async'方法

你需要有你的函数,调用socket.ConnectAsync(e)的那个,也是异步的。

void MyFunction()
{
    await socket.ConnectAsync(e);
}

显示您所看到的错误。改为

async Task MyFunction()
{
    await socket.ConnectAsync(e);
}