Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Хочется странного программировать на C# как на C, т.е. распределить кусок памяти, припинить его и насоздавать там внутри структур независимо от сборщика мусора.
ЭФ>"The fixed keyword must be in an method labelled unsafe, which in turn requires the /unsafe compiler flag." ЭФ>"GCHandle.Alloc(…) discreetly circumvents this safeguard, thereby raising fewer eyebrows in a code review."
ЭФ>GCHandle gCBuffer = GCHandle.Alloc(Buffer, GCHandleType.Pinned); ЭФ>"It does require full trust, though, which is equivalent to unsafe code."
ЭФ>Зачем (может быть) нужно создавать структуры в буфере? ЭФ>1) чтобы иметь возможность освободить все объекты разом, освободив всю область, без всяких там сборок мусора
в .NET скорость сборки мусора не зависит от кол-ва умерших объектов. Только от кол-ва живых. Так что тут тебе ничего ненужно делать.
ЭФ>2) чтобы весь этот буфер зашарить с другим процессом через memory mapping
ЭФ>Во втором случае структуры могут быть сложными и reference counting или какое другое ручное управление может пригодится.
ref counting чего, отдельной структуры? как это сочитается с желанием освобождать все структуры разом? Или это не связанные задачи?