2009-12-19 107 views
1

我想发送文件从本地到FTP,为此,我在发送文件之前锁定TCPClient。该文件正在另一个线程中进行。这样主线程不会受到影响。线程同步和线程暂停恢复

因为当我尝试在解锁之前使用锁定的TCPClient时,它挂起。所以我应该如何继续,以便在同一时间我可以发送文件也接收文件。(这两个函数都在不同的线程,但锁定相同的TCPClient对象)。

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

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

+0

请说出你正在使用哪个平台......我一直假设.NET基于类名,但我可能是错的。 – 2009-12-19 08:23:50

回答

2

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

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

0

TCP是一个双向协议。即使您收到一个文件,您也一直在发送确认。这意味着TCP在的情况下工作:有一个接收器端和一个发送器端。

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