Excel Prozess beendet nicht

Also ich wollte eigentlich nur wissen, ob

System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelObj);

ExcelObj = null;

GC.Collect();


funktioniert. und das auch ohne den Collect vom GC was ja so sein sollte.

Der rest ist mir schon klar ;)
 
Was ich eigentlich mit meiner Post aussagen wollte (was aber anscheinend nicht angekommen ist):

Es MUSS ohne GC.Collect gehen.
 
Ich hatte das getestet und es funktioniert Tadellos.
Warum schreibst Du das GC.Collect() schonwieder hin, wenn klar ist das es nicht hierher gehört?
Was bringt es Dir "nur" zu wissen ob es funktioniert?
Wie währe es wenn Du es selber ausprobierst bevor Du mich Locher in den Bauch fragst.
 
Hallo nochmal,

An cosmochaosmaker:

Der Code stammt nicht aus einem Tutorial, den habe ich mir aus Threads aus diesem Forum zusammen geschustert und von "www.c-sharpcorner.com" <- Hammer Seite.

Und wegen dem GC.Collect(), bei mir funktioniert es nur, mit dem GC ohne nicht.
Ich glaube das liegt daran das der GC nicht immer sofort aufräumt, könnte ja sein das das Programm nochmal auf die COM Schnittstelle zugreifen will.
Wichtig ist noch, das alle Referenzen vor dem GC.Collect auf null gesetzt werden
( Application, Workbook und Worksheet).

mfg Tassilo
 
Thx.
Dort hab ich auch meine ersten Codebeispiele zum Thema Excel her. Kann sein das die das geupdatet haben oder ich habs einfach übersehen.
Ich hab mal zu testen nach dem nullen ein
Code:
System.Threading.Thread.Sleep((5000));
eingefügt bevor die Klasse gelöscht wird indem sich das ExcelObjekt bei mir befindet.
Die ExcelTabelle wurde aber sofort geschlossen noch bevor die Zeitspanne vorrüber war.
Wer weiss warum das bei Dir nicht sofort klappt.
[thread=190267]Hier[/thread] wurde das Thema GarbageCollection schon mal diskutiert.

MfG cosmo
 
Ich muss noch was anfügen.
als ich grad eben nochmal in den Thread geschaut habe musste ich feststellen, dass ich den 2. Post von NRFi gar nicht mehr bemerkt habe, nachdem ich meinen abgeschickt hatte.
Die direktive
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelObj);
war also von NRFi und nicht, wie ich fälschlicher weise annahm von "www.c-sharpcorner.com".
Also danke also an Dich für den Tipp und sorry für's zutexten.

Gruß, cosmo
 

Neue Beiträge

Zurück