我试图让一些异步TCP的东西继续下去 . 在这里,我只是使用方法Send()从服务器向客户端发送数据 . 它发送正常,但我似乎没有使用await修饰符 . 事实上,当我使用它时,我的第二条消息实际上并不通过TCP套接字发送,尽管它确实调用了它的方法 .

Send a message to the client

private async Task Send(TcpClient client, CancellationToken ct, string message) {
            Console.WriteLine("Sending Message " + message);
            message += "<EOF>";
            using (client) {
                NetworkStream stream = client.GetStream();
                byte[] msg = Encoding.ASCII.GetBytes(message);
                await stream.WriteAsync(msg, 0, msg.Length, ct).ConfigureAwait(false);
            }
        }

如果我这样做,两条消息都会传递给客户端

Send(tcpClient, ct, "Message1");
            Send(tcpClient, ct, "Message2");

如果我使用await,则发送fire(至少调用Console.WriteLine),但只有Message1出现在我的客户端上 .

await Send(tcpClient, ct, "Message1");
            await Send(tcpClient, ct, "Message2");

我究竟做错了什么?