多线程Indy IdHTTP请求。绩效考虑问题

时间:2015-10-06 11:39:56

标签: multithreading delphi indy pausing-execution

我的应用程序使用Indy HTTP客户端连续查询7个市场。所有市场都提供了一个统一的请求/响应接口。也就是说,所有7个市场的请求/响应结构都相同。

我将GTIN提交给MainForm的TEdit框,应用程序向市场发布了7个RESTful请求,并返回所有这些请求的XML响应。

我的想法是将每个请求包装在一个单独的线程中,但我真的很担心性能问题。 Normaly我在3-5秒内执行了1次请求。

每个线程都在for语句中创建并初始化TIdHTTP对象,发出请求,获取XML响应,解析它并将其发送回MainForm。

当作业完成后,每个线程都需要终止(或暂停?) 如果线程完全终止,则它必须在下一个请求上执行相同的初始化例程。我发现它相对较慢,假设一次7个线程初始化。

但是,如果线程暂停,它只是驻留在内存中,其所有工厂都已初始化并且准备好以接受下一个请求。

如何让线程以操作方式终止但仍然完全初始化?我假设,如果TIdHTTP和XML解析对象在暂停的thead中保持活动状态,它们将在下一个请求中更快地执行。它有什么意义吗?

0 个答案:

没有答案