public SharedCollection(Context context, Span <T> span, bool host = false) { if (host) { Stream = SharedMemoryStream.FromHost(context, span); } else { var size = (uint)(Marshal.SizeOf <T>() * span.Length); Stream = new SharedMemoryStream(context, size); Stream.Write(span); } }
public SharedValue(Context context, T value, bool host = false) { if (host) { _value = new T[] { value }; Stream = SharedMemoryStream.FromHost(context, new Span <T>(_value)); } else { var size = Marshal.SizeOf <T>(); Stream = new SharedMemoryStream(context, (uint)size); Stream.Write(value); } }