1

我正在尝试将文件从本地发送到 FTP,因为我在发送文件之前锁定了 TCPClient。并且该文件发送正在另一个线程中进行。这样主线程不受影响。

当我尝试在解锁之前使用锁定的 TCPClient 时,它会挂起。那么我应该如何进行,以便在发送文件的同时也可以接收文件。(两个函数都在不同的线程中,但锁定了同一个 TCPClient 对象)。

我也在考虑暂停第一个线程并执行第二个线程,然后在第二个线程完成后恢复第一个线程。

请帮助,我迷失在线程中。

4

2 回答 2

2

您不应该使用TcpClient来自不同线程的相同来做不同的事情 - 它代表一个连接,因此在两个不同线程上发送和接收的数据会相互干扰。(即使您在一个中“发送”文件并在另一个中“接收”文件,两者都需要发送接收数据。)

我建议你使用两个不同的TcpClient实例。

于 2009-12-19T08:22:42.737 回答
0

TCP是一种双向协议。即使你收到一个文件,你也一直在发送确认。这意味着 TCP 在一个上下文中工作:有一个接收端和一个发送端。

您不应在实例中混合角色。使用 2 个不同的实例。它们可以并行工作。

于 2011-03-06T21:17:42.660 回答