2011-03-21 72 views
2

我有創造10+螺紋,一個窗口服務:阻塞調用(等待,COM調用)在STA線程

  • 做他們的工作,然後進入WaitForMultipleObjects的狀態,直到它們再次恢復..
  • 每個線程在其應用服務器創建TDCOMConnection組件的調用方法,然後 關閉該服務工作正常,但是我已經看到了內存泄漏問題的連接

我只是好奇,如果這個問題可以與消息泵。

我一直認爲當我使用COM編組(在局面,我有兩個線程之間的代理)

該消息在STA線程泵應該只適用 但今天我讀的地方,以防阻塞調用我應該照顧消息。 這是真的嗎?

但是我的應用程序仍正常運行,不會阻塞本身......

也許我應該使用:CoWaitForMultipleHandles代替:WaitForMultipleObjects的?

對這個問題有什麼想法?

回答

2

我不相信使用WaitForMultipleObjects而不是CoWaitForMultipleHandles會導致內存泄漏。你使用哪個功能真的取決於你,但不應該影響你是否泄漏。

爲了解決這個問題,我認爲你需要得到一些關於泄漏的詳細診斷信息。

+0

是的,我將不得不深究,但是我只是好奇,如果我應該處理我的STA線程中的消息.. – Paul 2011-03-21 12:21:37

+0

@Paul很難說不知道更多關於它。你是否像目前那樣看待問題? – 2011-03-21 12:22:21

+0

實際上沒有...除了小的內存泄漏。在我看來,調用com +方法的線程是我的問題的原因,因爲如果我刪除調用這些方法的行來查看Task對象是否正確分配/ .deallocated,那麼一切正常,內存不成長。 .. – Paul 2011-03-21 12:28:43