Alle ExcelObjekte freigeben

B

besy

Huhu,

ich hab ein (hoffentlich) kleines Problem.
Mein C# Programm füttert eine ExcelFile mit Daten, erzeugt dann ein schickes Diagram und stellt dies in einer PictureBox meiner Windows-Forms-Anwendung dar.
Das klappt soweit auch alles wunderbar, nur jedesmal wenn ich das Programm ausführe ist laut meinem TaskManager ein Excel mehr auf, d.h. ich mach wohl nicht alles wieder zu...
Hier mal das was ich derzeit tue wenn ich fertig bin mit Excel:
Code:
wb.Close(false, null, null);
exlApp.Quit();
this.releaseObject(ws);
this.releaseObject(wb);
this.releaseObject(exlApp);
exlApp = ExcelApllication
wb = Workbook
ws = Worksheet

Das release hab ich ausgelagert, hier die Methode:
Code:
private void releaseObject(object obj)
{
    try
    {
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
        obj = null;
    }
    catch(Exception ex)
    {
         obj = null;
         MessageBox.Show("Unable to release. " + ex.Message);
    }
    finally
    {
          GC.Collect();
    }
}

Was hab ich vergessen ?
Oder seh ich vor lauter Bäumen den Wald nicht mehr...
 

Neue Beiträge

Zurück