MemoryMemory<T>
MemoryMemory<T> creates access to Memory<T>.
// Create array
byte[] array = new byte[1024];
// Take Memory<T>
Memory<byte> memory = array;
// Create memory access
var memoryMemory = new MemoryMemory<byte>(memory);
ReadOnlyMemoryMemory<T> creates access to ReadOnlyMemory<T>.
// Create array
byte[] array = new byte[1024];
// Take ReadOnlyMemory<T>
ReadOnlyMemory<byte> memory = array;
// Create memory access
var memoryMemory = new ReadOnlyMemoryMemory<byte>(memory);
Concurrency
Memory doesn't have concurrency considerations. It can be read and written concurrently from different threads.
Full Example
Full example
using Avalanche.Memory;
public class memorymemory
{
public static void Run()
{
{
// <01>
// Create array
byte[] array = new byte[1024];
// Take Memory<T>
Memory<byte> memory = array;
// Create memory access
var memoryMemory = new MemoryMemory<byte>(memory);
// </01>
}
{
// <02>
// Create array
byte[] array = new byte[1024];
// Take ReadOnlyMemory<T>
ReadOnlyMemory<byte> memory = array;
// Create memory access
var memoryMemory = new ReadOnlyMemoryMemory<byte>(memory);
// </02>
}
}
}