2013-10-17 4 views
3

다음 코드는 나중에 코드가있는 경우 처리하고 싶습니다. 그것이 존재하는지를 찾는 방법이 있습니까?오브젝트가 dispose()되었는지 여부를 확인하는 방법이 있습니까?

Try 
    objExcel.dispose() 
Catch ex As Exception 
    'do nothing 
End Try 

사람이 더 우아한 덜 미봉책 방법이 있습니까 :

Public objExcel As Excel.Application 

내가 가지고 올 수있는 최선의이 같은 시도 ... catch 블록으로 처리를 넣어하는 것입니다?

답변

2

Excel 객체를 완전히 삭제하려면 마샬 클래스 여야합니다. System.Runtime.InteropServices.Marshal. 모든 엑셀 개체를 역순으로 놓아야합니다 - 워크 시트, 통합 문서, Excel 개체. 그렇지 않으면 작업 관리자에서 Excel 프로세스를 볼 수 있습니다.

System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obgExcel) 
1

먼저 개체가 초기화되었는지 확인한 다음 안전하게 처리 할 수 ​​있습니다.

+0

이렇게하면 문제가 발생하고 ObjectDisposed 예외가 발생합니다. IsNot Nothing으로 확인하기 전에 objExcel = Nothing을 사용하여 처리해야합니다. – henda79