Visual Studio 프로젝트에서 일부 COM 라이브러리에 대한 참조를 추가했습니다. 이제 메서드에서 만들고 개체를 만들면 프로그램에서 해당 메서드를 떠날 때이 COM 개체가 자동으로 해제됩니까? 아니면 항상 이러한 객체를 수동으로 해제해야합니까? (ReleaseComObject 또는 FinalReleaseComObject?).COM 개체 해제
5
A
답변
3
그것은 확실히 자동으로 수행하지, 그리고 경우에 따라서는 as described in this blog post (Marshal.ReleaseComObject
를 호출하여) 그렇게 위험 할 수 있습니다.
In-Proc COM 개체의 경우 COM 개체를 전혀 해제 할 필요가없는 경우가 종종 있습니다.
Out-Proc COM 개체의 경우 Office apps failing to shut down after automation from a .NET client과 같은 문제가 발생하지 않도록 Out-Proc COM 개체를 해제하는 것이 중요 할 수 있습니다. 이 경우
, 나는 위의 링크 된 블로그 게시물의 조언을 따를 것 :당신은 당신이 안전하게 그것에 ReleaseComObject를 호출 할 수 있습니다 스코프, 단일 스레드 방식으로 COM 개체를 사용하는 경우 당신이 그것을 끝내면 개체.
그러나 응용 프로그램에서 여러 위치 또는 여러 스레드에서 COM 개체를 사용하는 경우 (또는 동일한 프로세스에서 다른 응용 프로그램에서), 당신은 ReleaseComObject이
2
당신은 Marshal.ReleaseComObject를 사용할 수 있습니다 http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.marshal.releasecomobject.aspx
관련 문제
- 1. COM 개체
- 2. VB6 코드에서 .NET 개체 해제
- 3. PowerShell RunSpace에서 사용되는 COM 참조 해제
- 4. PHP에서 COM 개체 탐색
- 5. COM 개체 버전 얻기
- 6. COM 개체 DLL로드 문제
- 7. Windows COM 개체 목록?
- 8. COM 개체 오류
- 9. COM 개체 마무리
- 10. COM 개체와 자동화 개체
- 11. 다중 인스턴스 COM 개체
- 12. Java로 COM 개체 만들기
- 13. 깨진 COM 개체 등록
- 14. WCF 래퍼 COM 개체
- 15. dealloc에서 개체 해제
- 16. 멀티 스레드에서 개체 해제
- 17. Windows 7에서 COM 개체 등록
- 18. COM 개체 예외를 잡는 방법?
- 19. OLE/COM 개체 뷰어가 STG_E_FILENOTFOUND를보고합니다.
- 20. COM - 개체 인터페이스 배열을 반환하십시오.
- 21. Java 애플릿의 COM 개체 사용
- 22. VBScript에서 .NET COM 개체 호출
- 23. InstallShield를 사용하여 COM 개체 등록
- 24. 사용자 권한 및 COM 개체
- 25. regsvr32가없는 파일에서 COM 개체 만들기
- 26. COM 개체 예외를 추적하는 방법?
- 27. .net IDataReader를 반환하는 COM + 개체
- 28. IIS 7에서 COM 개체 사용
- 29. Vista에서 COM 개체 만들기 오류
- 30. C#에서 COM 개체 관리
이 더 많은이 호출해서는 안 [여기] (http://stackoverflow.com/questions/1827059/why-use-finalreleasecomobject-instead-of-releasecomobject) – StuartLC
기사를 모두 터프하고 지루한 것처럼 조사 할 시간을 가지십시오. 예 : http : // blogs.msdn.com/b/visualstudio/archive/2010/03/01/marshal-releasecomobject-considered-dangerous.aspx –