Size: a a a

BY Microsoft .NET User Group

2019 November 20

VK

Vladimir Kelbas in BY Microsoft .NET User Group
источник

VK

Vladimir Kelbas in BY Microsoft .NET User Group
источник

A

Anatoly in BY Microsoft .NET User Group
Dmitry Protko
Иногда кроме GC.SuppressFinalize() внутри и реализации и нет ничего
вы можете задать вопрос авторам - зачем они так делают и делают плохие диспозы и попросить их убрать диспозабл интерфейс
источник

A

Anatoly in BY Microsoft .NET User Group
но нет ни одной валидной причины не вызывать диспоз у IDisposable объекта
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Я не гуру оптимизаций, но думаю, что редактировать массив байтов, представляющих собой изображение, можно и без использования неуправляемой памяти
источник

A

Anatoly in BY Microsoft .NET User Group
Dmitry Protko
Я не гуру оптимизаций, но думаю, что редактировать массив байтов, представляющих собой изображение, можно и без использования неуправляемой памяти
ну, вы ошибаетесь
источник

A

Anatoly in BY Microsoft .NET User Group
например, моя реализация апи, подобного System.Drawing, делегировала всё в ImageMagick
источник

A

Anatoly in BY Microsoft .NET User Group
у Imagemagick есть своя память, свои хендлы, вот это всё.
источник

A

Anatoly in BY Microsoft .NET User Group
я уверен, что потратив лет 5, я бы написал все нужные операции для манипуляции байтами в массиве. или таки поработать с неуправляемой памятью и сделать за неделю?
источник

A

Anatoly in BY Microsoft .NET User Group
Ну и если посмотреть в код выше, там примерно тоже самое, только другая библиотека. Не ImageMagick.
источник

VB

Vitaly Bibikov in BY Microsoft .NET User Group
Зависит от задач, но под кор, из всех либ самая адекватная на момент 2 месяца назад была SkiaSharp для задач ресайза изображения
источник

VB

Vitaly Bibikov in BY Microsoft .NET User Group
https://devblogs.microsoft.com/dotnet/net-core-image-processing/

Вот, в целом, пост на тему, мы делали свои измерения, так как нужна была быстрая библиотека, которая еще и достаточно мало весит, так как для serverless это критично
источник

AK

Andrew Khmylov in BY Microsoft .NET User Group
Anatoly
Если есть диспоз, вы его всегда вызываете
Ну когда-то HttpClient не всегда надо было диспоузить, так что утверждение не абсолютно верное
источник

A

Anatoly in BY Microsoft .NET User Group
Andrew Khmylov
Ну когда-то HttpClient не всегда надо было диспоузить, так что утверждение не абсолютно верное
Его надо было диспоузить всегда. Утверждение абсолютно верное
источник

VB

Vitaly Bibikov in BY Microsoft .NET User Group
Его надо было диспоузить всегда, просто, если ты хотел его переиспользовать, то ты делаешь/делал это не сразу после вызова, а например в момент смерти обьекта, который его юзал.
источник

A

Anatoly in BY Microsoft .NET User Group
Все срачи велись о моменте создания и диспоза, а не о факте диспоза
источник

A

Anatoly in BY Microsoft .NET User Group
Vitaly Bibikov
Зависит от задач, но под кор, из всех либ самая адекватная на момент 2 месяца назад была SkiaSharp для задач ресайза изображения
Ския хорошая, я не помню её статус в промежутке между кор1.0 и кор1.1. Может быть я просто плохо искал.
источник

VB

Vitaly Bibikov in BY Microsoft .NET User Group
Насколько помню она не суппортила его. Мы использовали CoreCompat.System.Drawing на тот момент
источник

A

Artyom in BY Microsoft .NET User Group
Dmitry Protko
Я не гуру оптимизаций, но думаю, что редактировать массив байтов, представляющих собой изображение, можно и без использования неуправляемой памяти
всё просто. для рисования используется GDI/GDI+. это такоя штука которая (с помощью CPU) выполняет рисование.
чтобы работать с GDI нужно использовать их апи, которое типа нативное и такое. ни какого .net. т.е. объекты по старинке нужно создавать и удалять и почее

если я не ошибаюсь в виндовс есть ограничение на количество созданных GDI объектов. если его превысить - exception
источник

A

Artyom in BY Microsoft .NET User Group
может возникнуть ризонный вопрос зачем использовать GDI если я просто хочу нарисовать линию.
ризонный ответ: нет не просто.
во первых нормально нарисовать линию это не просто я не шучу.
во вторых с помощью GDI вы можете рисовать на кнопках панелях и проч. а это обёртки стандартных виндовых окон. это своя инфраструктура и эти кнопки тоже нужно диспоузить и т.д. и тп. своя жизнь нативных объектов
источник