먼저 코드는 다음과 같습니다.
Excel.Application excelApp = new Excel.Application();
Excel.Workbooks workbooks = excelApp.Workbooks;
Excel.Workbook wb = workbooks.Add(Type.Missing);
Excel.Sheets sheets = wb.Worksheets;
Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;
Excel.Range cells = (Excel.Range)ws.Cells;
Excel.Range rng = ws.Range[cells[1, 1], cells[3 * (DataReceiveNumbers + 2) + 4, 20]];
....
wb.Close();
workbooks.Close();
excelApp.Quit();
ReleaseExcelObject(rng);
ReleaseExcelObject(cells);
ReleaseExcelObject(ws);
ReleaseExcelObject(sheets);
ReleaseExcelObject(wb);
ReleaseExcelObject(workbooks);
ReleaseExcelObject(excelApp);
이 부분을 제외한 나머지 코드는 주석처리 해놓았습니다. 아래와 같은 방식으로 한 줄씩 주석처리 하며 어떤 객체가 Release 되지 않았는지 확인한 결과 rng가 Release 되지 않았다는 것을 알게 되었습니다.
Excel.Application excelApp = new Excel.Application();
//Excel.Workbooks workbooks = excelApp.Workbooks;
//Excel.Workbook wb = workbooks.Add(Type.Missing);
//Excel.Sheets sheets = wb.Worksheets;
//Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;
//Excel.Range cells = (Excel.Range)ws.Cells;
//Excel.Range rng = ws.Range[cells[1, 1], cells[3 * (DataReceiveNumbers + 2) + 4, 20]];
// wb.Close();
// workbooks.Close();
excelApp.Quit();
// ReleaseExcelObject(rng);
// ReleaseExcelObject(cells);
// ReleaseExcelObject(ws);
// ReleaseExcelObject(sheets);
// ReleaseExcelObject(wb);
// ReleaseExcelObject(workbooks);
ReleaseExcelObject(excelApp);
어떻게하면 rng를 Release 시킬 수 있을까요?