0

我正在使用 NetworkStream 在 C# 中实现通信协议(Modbus):程序需要编写小数据包(命令)并随后从连接的 TCP 套接字读取响应(几个字节)。在处理像 FileStream 或 NetworkStream 这样的流时,我通常使用完整的异步解决方案,如下所示(示例代码):

Task.Run(async () => 
{
    while (true)
    {
       await stream.WriteAsync(cmdBuffer, ...);
       await stream.ReadAsync(responseBuffer, ...);
       //handle response....
    }
});

但我想知道普通同步读/写(在这种特定情况下,即非常频繁地读/写小数据包)是否可以工作几乎相同:

var thread = new Thread(new ThreadStart(this.DoWork));
thread.Start();

private void DoWork()
{
    stream.Write(cmdBuffer, ...);
    stream.Read(responseBuffer, ...);
    //handle response....
}

我说得对,在这种情况下异步/等待没有太大区别?

4

0 回答 0