2

我有一个创建 10 多个线程的 Windows 服务:

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

该服务运行良好,但是我看到了内存泄漏问题。

我只是好奇这个问题是否与消息泵有关。

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

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

但是我的应用程序仍然可以正常运行,不会阻止自己...

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

对这个问题有什么想法吗?

4

1 回答 1

2

我不相信使用 WaitForMultipleObjects 而不是 CoWaitForMultipleHandles 会导致内存泄漏。您使用哪个功能实际上取决于您,但应该不会影响您是否泄漏。

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

于 2011-03-21T12:18:18.627 回答