我的应用程序使用 Indy HTTP 客户端连续查询 7 个市场。所有市场都提供统一的请求/响应界面。也就是说,所有 7 个市场的请求/响应结构都是相同的。
我将GTIN提交到 MainForm 的TEdit
框,应用程序向市场发布 7 个 RESTful 请求,并为所有这些请求返回 XML 响应。
我的想法是将每个请求包装在一个单独的线程中,但我真的很担心性能问题。通常我会在 3-5 秒内执行 1 个请求。
每个线程都在for
语句中创建并初始化TIdHTTP
对象、发出请求、获取 XML 响应、解析它并将其发送回 MainForm。
作业完成后,每个线程都需要终止(或暂停?)如果线程完全终止,那么它必须在下一个请求上执行相同的初始化例程。我发现它相对较慢,假设一次有 7 个线程初始化。
但是,如果线程暂停,它只是驻留在内存中,所有工厂都已初始化并准备好接受下一个请求。
如何让线程在操作上终止,但仍完全初始化?我假设,如果TIdHTTP
XML 解析对象在暂停的线程中保持活动状态,它们会在下一个请求时更快地执行。它有任何意义吗?