2009-03-17 5 views
1

Hallo Ich habe ein SharePoint-Webpart, das ich gemacht habe, und ich überschreibe die Render-Methode. Meine Frage ist, wie lange ein Objekt lebt, bevor der GC es aufräumt? Ich habe ein StringReader-Objekt in der Render-Funktion erstellt. Ich frage mich, ob es gelöscht wird, sobald die Seite gerendert wurde, oder muss ich explizit die .Close-Methode aufrufen.Schließt GC Objekte, sobald die Seite gerendert wurde?

Könnte dies dazu führen, dass der SharePoint-Server zu 99% geht? (w3wp.exe Prozess ging zu 99% CPU)

Vielen Dank.

Antwort

2

Es ist besser (lies: praktisch obligatorisch), Close zu nennen. Der GC wird es auf die eine oder andere Weise schaffen, aber nicht deterministisch.

Könnte dies dazu führen, dass der SharePoint-Server zu 99% geht? (W3wp.exe Prozess ging zu 99% CPU)

unwahrscheinlich vielleicht kurz, aber unabhängig davon, was der w3wp Prozess zu tun ist, möchten Sie ausdrücklich Einweg-Ressourcen freizugeben, wann immer Sie können. Wenn Sie mit einem Objekt arbeiten, das IDisposable implementiert, denken Sie an den GC als Sicherheitsnetz.

+0

'nicht deterministisch' ist wahr, aber kaum das Problem hier. Aber es für den GC zu verlassen ist ineffizient. –

+0

OP: "Meine Frage ist, wie lange ein Objekt lebt, bevor der GC es aufräumt?" A: Nondeterministisch Ich würde sagen, es ist genau das Problem. –