15 Kasım 2017 Çarşamba

Memory Yapısı

Giriş
C# 7.2 ile geliyor. Heap'teki belleği geçmek için kullanılır. Stack'teki belleği geçmek için Stack Yapısı kullanılır.

Örnek
Şöyle yaparız.
async Task DoSomethingAsync(Memory<byte> buffer) {
  buffer.Span[0] = 0;
  await Something(); // The stack unwinds here, but it's OK as Memory<T> is
                     // just like any other type.
  buffer.Span[0] = 1;
}
Açıklaması şöyle.
In the sample above, the Memory <byte> is used to represent the buffer. It is a regular type and can be used in methods doing asynchronous calls. Its Span property returns Span<byte>, but the returned value does not get stored on the heap during asynchronous calls, but rather new values are produced from the Memory<T> value. In a sense, Memory<T> is a factory of Span<T>.

Hiç yorum yok:

Yorum Gönder