2011-12-05 2 views

답변

4

UnmanagedMemoryStream 공용 언어 런타임에서 할당되지 않은 메모리에 액세스 할 수 있습니다. 이는 주로 Stream 인터페이스를 통해 비 관리 코드에 의해 할당 된 메모리를 처리하려는 경우에 유용합니다 (예 : 이미 스트림에서 작동하는 코드가 있으므로). 물론

Marshal 클래스를 통해 C 번호 내에서 관리되지 않는 메모리를 할당하고 UnmanagedMemoryStream에 그 포장에서 당신을 유지 아무것도 없지만 대신 MemoryStream을 사용할 수도 있기 때문에 그것은 단지 삶을 더 어렵게 만들고있다 그리고 그것은 정말 가정이 정말 같지도 스트림을 백업하는 메모리를 수동으로 제어하면 어떤 이점도 얻을 수 있습니다.

10

UnmanagedMemoryStream을 사용하면 관리되는 모든 스트림을 먼저 관리 힙에 복사하지 않고 관리되지 않는 스트림을 읽을 수 있으므로 관리되지 않는 스트림을 처리 할 때 메모리가 덜 사용됩니다. 또한 많은 양의 데이터를 다루는 경우 메모리 제한을 피할 수 있습니다. 다음은 UnmanagedMemoryStream에 대한 간단한 기사입니다.

편집 : MemoryStream에는 2GB 제한이 있으므로이 제한을 초과하면 UnmanagedMemoryStream을 사용해야합니다.

+0

안녕하세요, 저는 위에 언급 한 기사를 읽었습니다. 이것이 내가 진정으로 이익이되는지를 알고 싶었던 것입니다. 귀하의 의견을 많이 주셔서 감사합니다 :) – HIyer

관련 문제