我使用 Indy 的 TIdTCPServer(D2009,Indy 10)与客户端应用程序进行通信。在 OnExecute 方法中,我创建了一个任务并将其排队。工作线程执行任务并将其放入发送队列。然后发送队列将响应发送给客户端。
在发送线程中,我遍历服务器的上下文列表并查找与存储在任务中的 IP 和端口信息匹配的上下文。然后遵循一些有时会引发访问冲突的发送命令(我猜上下文在发送过程中被破坏)。
现在问题是:如何确保在发送响应之前上下文没有关闭?Indy 是否可以从单独的线程发送,或者一切都应该在 Indy 线程中完成?