使用StreamReader / StreamWriter进行基本多线程处理

时间:2011-08-05 20:23:09

标签: c# .net sockets tcpclient

我正在使用StreamReader从TcpSocket读取,并使用StreamWriter写入该TcpSocket。我想将读取代码放在一个线程中,将编写代码放在另一个线程中。如何以线程安全的方式执行此操作?

如果我执行以下操作,那么我想在很多情况下会阻止编写器线程:

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

这是作家代码:

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

1 个答案:

答案 0 :(得分:3)

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

所以你可以在一个帖子中做到这一点:

streamReader.ReadLine();

这是另一个主题:

streamWriter.WriteLine(line);

无需锁定tcpClient