2016-07-28 36 views
-1

Ich bin verwirrt zwischen verwalteten und nicht verwalteten Ressourcen in .NET-Programmierung. Ich entwickle eine vb.net-Anwendung. Ich habe auf der Microsoft-Website gelesen, dass der Garbage Collector, wenn wir verwaltete Ressourcen verwenden, ihn entsorgen wird und wenn wir nicht verwaltete Ressourcen verwenden, müssen wir dispose aufrufen. Aber ich habe nirgendwo die Antwort auf folgende Fragen bekommen.Verwaltete und nicht verwaltete Ressourcen in .Net

  1. Wie kann ich die vom Code verwendeten Ressourcen als "Managed" und "Unmanaged" unterscheiden? Kann ich eine Liste von Ressourcen haben, die zu verwalteten und nicht verwalteten Ressourcen gehören?
  2. Ob die Ressourcen vor der Erstellung von Objekten oder nach der Erstellung der Objekte verwendet/zugewiesen werden?
  3. Im Falle von nicht verwalteten Ressourcen, ob Ressourcen freigegeben werden, sobald Scope geschlossen wird oder sollte ich sie auch nach dem Schließen des Scope entsorgen?

Antwort

1
  1. , wenn die Klasse erbt IDisposable seine unmanaged oder enthält einige nicht verwaltete
  2. nicht sicher, was du meinst, sein in der Regel an dem CTOR, so mit der Erstellung des Objekts, es vor sein kann nicht, tun Sie betrachten ein CTOR wie danach? (o.c. sofern nicht anders angegeben)
  3. Best Practice würde vererben IDisposable überall wo Sie einige verwalteten Code verwenden, aber mit. NET mit einem guten GC, es sei denn, Sie irgendwie die unmanaged res sperren. Du solltest in Ordnung sein.