@daniil14056

Как зафиксировать в памяти объект и уберечь от перемещения при сборке мусора с#?

Обычно делаю так
structMy* s= (  structMy*)NativeMemory.Alloc(sizeof(structMy));

Но такой метод не позволяет через конструктор инициализировать? В общем он устраивает. но может есть и другие способы.
Еще обычно, если вот поле s находиться порой в структуре то структуре наверняка будет IDisposable, и будет в using блоке
using(Wrapper w=new Wrapper()){ // Wrapper  - структура
           method(ref w); // ERROR  сразу показывает
    }

И вот так сразу ошибка, а делать без using блока не так красиво.
Второй вариант, сразу делать класс, и тогда еще и класс нужно фиксировать в памяти.
Но GCHandle.Alloc типа там сборщик мусора замедляет, а можно ли как-то создать объект в неуправляемой памяти, что бы он там и лежал, и GC не замедлял.
Какие есть рекомендации.
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 2
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
Вы работаете с неуправляемым кодом? Это как раз вещи созданные для работы со сторонними библиотеками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы