基本多线程与StreamReader/StreamWriter

本文关键字:StreamWriter StreamReader 本多 多线程 | 更新日期: 2023-09-27 18:04:34

我使用StreamReader从TcpSocket读取,并使用StreamWriter向该TcpSocket写入。我想在一个线程中读取代码,在另一个线程中编写代码。我如何以线程安全的方式做到这一点?

如果我这样做,那么我猜在许多情况下,写线程将被阻塞:

lock (tcpClient) {
    streamReader.ReadLine();
}

下面是编写器代码:

lock (tcpClient) {
    streamWriter.WriteLine(line);
}

基本多线程与StreamReader/StreamWriter

在一个线程上发送,在另一个线程上接收是安全的。

所以你可以在一个线程中完成:

streamReader.ReadLine();

和这个在另一个线程:

streamWriter.WriteLine(line);

不需要锁定tcpClient