2009-12-19 104 views
1

我想發送文件從本地到FTP,爲此,我在發送文件之前鎖定TCPClient。該文件正在另一個線程中進行。這樣主線程不會受到影響。線程同步和線程暫停恢復

因爲當我嘗試在解鎖之前使用鎖定的TCPClient時,它掛起。所以我應該如何繼續,以便在同一時間我可以發送文件也接收文件。(這兩個函數都在不同的線程,但鎖定相同的TCPClient對象)。

我也想暫停第一個線程並執行第二個,然後當第二個完成,然後在第一個恢復。

請幫忙,我迷失在線程中。

+0

請說出你正在使用哪個平臺......我一直假設.NET基於類名,但我可能是錯的。 – 2009-12-19 08:23:50

回答

2

不應該使用來自不同線程的相同TcpClient做不同的事情 - 它表示一個單獨的連接,所以在兩個不同的線程上發送和接收的數據會相互干擾。 (即使你在「發送」一個文件並在另一個「接收」文件,兩者都需要發送接收數據。)

我建議你使用兩個不同的TcpClient實例。

0

TCP是一個雙向協議。即使您收到一個文件,您也一直在發送確認。這意味着TCP在的情況下工作:有一個接收器端和一個發送器端。

您不應該在實例中混合角色。使用2個不同的實例。他們可以並行工作。