1
나는이 같은 우리의 코드베이스 코드를 발견하십시오하여 ComObject로Finalizer에서 Marshall.ReleaseComObject를 호출 할 수 있습니까?
if (disposing)
{
....
}
Marshal.ReleaseComObject(comObject)
사실 .NET 개체입니다 (?를 RCW, 오른쪽)이 종료 자에서 호출하는 것이 안전합니다?
이미 출시되었을 가능성이 있습니까? Hans Passant
으로
아니요, 안전하지 않습니다. RCW에는 이미 자체 완성자가 있습니다. 무엇보다도 코드를 완전히 불필요하게 만듭니다. 보다 심각한 문제는 finalization 순서가 결정적이지 않기 때문에 이미 파괴 된 객체에 대해 ReleaseComObject()를 호출 할 수 있습니다. –
감사합니다. 답으로 입력하면 솔루션으로 표시됩니다. –
확실히 더 나은 답변을 게시 할 수 있습니까? 파괴 된 객체에서 ReleaseComObject()를 호출 할 때 어떤 일이 발생하는지 모르겠다. –