Assembly.LoadFrom()으로 로드된 어셈블리 언로드
DLL 로드 후 GetTypes()를 실행하는 데 걸리는 시간을 확인하려면 Assembly.LoadFrom()을 사용하면 DLL을 언로드하고 다시 로드해야 할 수도 있습니다. 그러나 어셈블리 참조를 null로 설정하는 것만으로는 어셈블리를 언로드하기에 충분하지 않습니다.
명시적으로 어셈블리 언로드
어셈블리를 명시적으로 언로드하려면 AppDomain.Unload를 사용할 수 있습니다. () 방법. 예는 다음과 같습니다.
// Create a separate AppDomain to load the assembly AppDomain dom = AppDomain.CreateDomain("some"); // Load the assembly into the new AppDomain Assembly assembly = dom.LoadFrom(filePath); // Get the types from the assembly Type[] types = assembly.GetTypes(); // Unload the AppDomain, which will unload the assembly AppDomain.Unload(dom);
AppDomain을 언로드하면 어셈블리와 해당 리소스가 모두 가비지 수집기에 의해 회수됩니다.
가비지 수집기 사용
어셈블리 참조를 null로 설정해도 어셈블리가 명시적으로 언로드되지는 않지만 가비지 대상이 됩니다. 수집. 가비지 수집기는 결국 Assembly 개체에 할당된 리소스를 회수하고 어셈블리 파일은 메모리에서 언로드됩니다.
그러나 가비지 수집기를 명시적으로 호출하거나 강제로 즉시 실행하도록 할 수 있는 방법은 없습니다. 시스템에 유휴 시간이 있을 때 실행되는 백그라운드 프로세스입니다. 따라서 어셈블리를 명시적으로 언로드하려면 AppDomain.Unload()를 사용하는 것이 좋습니다.
위 내용은 Assembly.LoadFrom()을 사용하여 로드된 어셈블리를 명시적으로 언로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!