저는 쓰는 작은 취미 게임을위한 간단한 리소스 관리자를 작성하려고합니다. 이 자원 관리자가 수행해야하는 작업 중 하나는 사용하지 않는 자원을 언로드하는 것입니다. 나는 두 가지 방법으로이 일을 생각할 수 있습니다 :C# - 개체에 대한 참조 수를 얻으십시오.
객체가 더 이상, 그것은 더 이상 그것을 사용하는 의미하지하기 위해 리소스 관리자 하는 방법을 호출해야합니다 자원에 참조를 필요로하는 경우; 또는
객체가 더 이상 자원에 참조를 필요로
, 그것은 단순히 는 null로 설정합니다. 그런 다음 리소스 관리자가 사용하지 않는 리소스 인 을 언로드하라는 메시지를 받으면 개의 리소스가 각각 (리플렉션을 통해) 참조 카운트가됩니다. 참조 카운트가 인 경우 (리소스 관리자는 에 리소스에 대한 참조가 있음) 리소스를 언로드합니다.
C#의 두 번째 솔루션을 구현할 방법이 있습니까? 감사합니다. .
리소스 관리자는 Garbace Collector에서 수행하지 않는 작업은 무엇입니까? – CannibalSmith
@CannibalSmith - 일반적으로 여러 비트의 코드가 리소스 (본질적으로 캐시)를 다시 사용할 수 있도록 허용 –
한 번에 하나의 이미지 만로드되도록 이미지로드 하나의 버전은 메모리에있을 수 있음). –