Heim > Backend-Entwicklung > C++ > Wie entlade ich mit Assembly.LoadFrom() geladene Assemblys in C#?

Wie entlade ich mit Assembly.LoadFrom() geladene Assemblys in C#?

Susan Sarandon
Freigeben: 2024-12-28 21:19:21
Original
258 Leute haben es durchsucht

How to Unload Assemblies Loaded with Assembly.LoadFrom() in C#?

Entladen von Assemblys, die mit Assembly.LoadFrom() geladen wurden

In C# müssen Assemblys, die mit Assembly.LoadFrom() geladen wurden, explizit entladen werden, um Speicher freizugeben und Ressourcen freizugeben wird von der Baugruppe gehalten.

Entladen der Baugruppe

Um eine Baugruppe zu entladen, können Sie verwenden die AppDomain.Unload-Methode. Diese Methode entlädt die angegebene AppDomain, die wiederum alle in dieser AppDomain geladenen Assemblys entlädt. Zum Beispiel:

// Create a new AppDomain and load the assembly
AppDomain dom = AppDomain.CreateDomain("some");
AssemblyName assemblyName = new AssemblyName();
assemblyName.CodeBase = pathToAssembly;
Assembly assembly = dom.Load(assemblyName);

// Get the types from the assembly
Type[] types = assembly.GetTypes();

// Unload the AppDomain
AppDomain.Unload(dom);
Nach dem Login kopieren

Explizites Aufrufen des Garbage Collectors

Der Aufruf von assem = null allein garantiert nicht, dass die Assembly sofort entladen wird. Der Garbage Collector muss weiterhin ausgeführt werden, um die nicht referenzierten Ressourcen zurückzugewinnen. Sie können den Garbage Collector in C# nicht explizit aufrufen.

Sie können jedoch erzwingen, dass der Garbage Collector früher ausgeführt wird, indem Sie die GC.Collect-Methode aufrufen. Diese Methode löst einen Garbage-Collection-Zyklus aus und versucht, alle nicht erreichbaren Objekte zurückzugewinnen. Während GC.Collect in einigen Szenarien zur Leistungsverbesserung verwendet werden kann, wird im Allgemeinen nicht empfohlen, sich stark darauf zu verlassen, da es zu Pausen in Ihrer Anwendung führen kann.

Das obige ist der detaillierte Inhalt vonWie entlade ich mit Assembly.LoadFrom() geladene Assemblys in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage