UnmanagedMemoryStream
позволяет получить доступ к памяти, которая не была выделена средой общего языка, что полезно, главным образом, если вы хотите обрабатывать память, выделенную неуправляемым кодом, через интерфейс Stream
(например, потому что у вас уже есть код, которыйработает на потоках).
Конечно, ничто не мешает вам выделять неуправляемую память из C # через класс Marshal
и помещать ее в UnmanagedMemoryStream
, но это просто делает жизньболее сложным, поскольку вы могли бы использовать MemoryStream
вместо этого, и это очень, очень маловероятно, если ручное управление памятью, поддерживающей поток, даст какую-то выгоду.