线程同步和线程暂停\恢复

发布于 2024-08-15 04:58:14 字数 254 浏览 10 评论 0原文

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

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

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

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

I am trying to send the files from local to FTP, for that I am locking the TCPClient before sending the file. And that file sending is doing in another thread. So that the main thread doesn't affected.

As when I try to use the locked TCPClient before Unlocking it, it hangs. So how should I proceed, so that at the same time I can send the file also receive the file.(Both function are in different thread but locks the same TCPClient object).

I am also thinking to pause the first thread and perform second one, then when second complete and the after resume the first one.

Please help, I am lost in threads.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的心境我的脸 2024-08-22 04:58:14

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

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

You shouldn't use the same TcpClient from different threads to do different things - it represents a single connection, so the data sent and received on the two different threads would interfere with each other. (Even if you're "sending" a file in one and "receiving" a file in the other, both will need to send and receive data.)

I suggest you use two different TcpClient instances.

百思不得你姐 2024-08-22 04:58:14

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

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

TCP is a bi-directionnal protocol. Even if you receive a file, you are sending acknowledgment all along. This means TCP works within a context : there is one receiver end, and one sender end.

You should not mix role within an instance. Use 2 different instances. They can work in parallel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文