阻止STA线程中的调用(wait,com调用)

时间:2011-03-21 08:37:47

标签: multithreading delphi com+ sta waitformultipleobjects

我有一个Windows服务,可以创建10个以上的线程:

  • 完成他们的工作,然后进入WaitForMultipleObjects状态,直到它们再次恢复..
  • 每个线程在其AppServer上创建TDCOMConnection组件调用方法然后 关闭连接

该服务运行正常,但我看到了内存泄漏问题。

我很好奇,如果这个问题可能与消息泵送有关。

我一直认为应该只应用STA线程中的消息 当我使用com编组时(在两个线程之间有代理的情况下)

但是今天我在某处读到,如果阻止呼叫,我应该处理消息。 这是真的吗?

但是我的应用程序仍能正常运行,不会阻塞自己...

也许我应该使用:CoWaitForMultipleHandles而不是:WaitForMultipleObjects?

关于这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

我不相信使用WaitForMultipleObjects而不是CoWaitForMultipleHandles会导致内存泄漏。你使用哪种功能真的取决于你,但对你是否泄漏没有任何影响。

为了解决这个问题,我认为您需要对泄漏事项进行详细的诊断。