2011-03-21 7 views
2

나는 10 개 + 스레드를 생성하는 Windows 서비스가 있습니다차단 호출 (COM 호출 대기)

  • 자신의 일을하고 다시 재개 될 때까지 다음 WaitForMultipleObjects에 상태를 입력합니다 ..
  • 각 스레드는 해당 AppServer에 TDCOMConnection 구성 요소 호출 메서드를 만든 다음 연결을 닫습니다.

서비스가 정상적으로 작동하지만 메모리 누수 문제가 발생했습니다.

해당 문제가 메시지 펌핑과 관련 될 수 있는지 궁금합니다.

나는 항상 내가 (내가 두 개의 스레드 사이에 프록시가 그 상황에서) COM은 마샬링

사용할 때 STA 스레드에서 펌핑 해당 메시지는 을 적용해야한다고 생각하지만 오늘 어디 선가 경우 통화를 차단 읽었습니다 나는 메시지를 돌봐야한다. 사실입니까?

내 응용 프로그램이 여전히 제대로 작동하지만, 자신을 차단하지 않습니다 ...

은 어쩌면 내가 사용해야합니다 CoWaitForMultipleHandles를 대신 :와 WaitForMultipleObjects를?

이 문제에 대한 의견이 있으십니까?

답변

2

CoWaitForMultipleHandles 대신 WaitForMultipleObjects를 사용하면 메모리 누수가 발생한다고 생각하지 않습니다. 어떤 기능을 사용하는지는 당신에게 달렸지 만 누설 여부에 영향을 미치지 않아야합니다.

이 문제를 해결하려면 누출에 대한 자세한 진단 정보가 필요하다고 생각합니다.

+0

예 나는 STA 스레드에서 메시지를 처리해야한다면 궁금합니다. – Paul

+0

@Paul 자세한 내용을 알지 못해서 말하기가 어렵습니다. 현재 어떻게 문제를 겪고 있습니까? –

+0

실제로 작은 것은 제외하고 메모리 누설. 그것은 내 스레드가 COM + 메서드를 호출하는 것 내 문제의 이유는 작업 개체 할당/.deallocated 경우 이러한 메서드를 호출하는 줄을 제거한 다음 모든 작동 확인 및 메모리 자라지 않는 것 때문에 것 같다. .. – Paul

관련 문제