@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
Вы работаете с неуправляемым кодом? Это как раз вещи созданные для работы со сторонними библиотеками.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
27 июн. 2024, в 17:49
600 руб./за проект
27 июн. 2024, в 17:33
20000 руб./за проект
27 июн. 2024, в 17:19
30000 руб./за проект