Позволяет разным процессам моментально делиться состоянием и постранично работать с большими файлами, не загружая их полностью в RAM.
Что важно знать:
• Один участок памяти доступен сразу разным приложениям;
• Всегда закрывайте ресурсы, иначе память останется занята;
• Выбирайте размер области, учитывая расход оперативной памяти.
Так вы получаете мгновенный обмен данными и экономию ресурсов при работе с крупными файлами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍9❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Он публикует отобранные статьи, заметки и инструменты по C#, ASP․NET, облачным сервисам и другим темам .NET-мира. Отлично подойдёт разработчикам, которые хотят быстро и удобно быть в курсе новостей и полезных материалов сообщества.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥4
Скрипт автоматически наносит прозрачную надпись в нижний правый угол любого изображения.
В этой задаче:
• Обработка любых форматов изображений без лишних зависимостей;
• Надпись автоматически располагается точно в нужном углу кадра;
• Прозрачность текста легко регулируется для любого фона.
Получите аккуратный водяной знак без дополнительных усилий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7❤6🤝1
❤10👍5🔥5😁1
Библиотека упрощает управление параллельными операциями, автоматизируя планирование и обработку ошибок.
Что важно знать:
• Задачи выполняются одновременно без сложной настройки потоков;
• Можно легко отменять задачи и обрабатывать возникающие ошибки;
• Работа равномерно распределяется по всем доступным ядрам процессора.
Получаете простой, быстрый и надёжный параллельный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍6❤4🤝1
Организуем неблокирующий продюсер–консюмер с ChannelReader/Writer!
При обмене данными между задачами часто нужно передавать данные по мере готовности, без блокировок и ручных очередей. Вместо
Сначала создаём канал без ограничений на размер — данные будут накапливаться в памяти:
Запускаем продюсера: он будет отправлять сообщения в канал с небольшой задержкой:
Теперь читаем данные по мере поступления через
🔥 Получаем асинхронную очередь: безопасную, читаемую и без ручных синхронизаций.
➡️ C# Ready | #практика
При обмене данными между задачами часто нужно передавать данные по мере готовности, без блокировок и ручных очередей. Вместо
lock или BlockingCollection используем Channel — асинхронный и безопасный способ обмена сообщениями.Сначала создаём канал без ограничений на размер — данные будут накапливаться в памяти:
var channel = Channel.CreateUnbounded<string>();
Запускаем продюсера: он будет отправлять сообщения в канал с небольшой задержкой:
_ = Task.Run(async () =>
{
for (int i = 1; i <= 5; i++)
{
await Task.Delay(500);
await channel.Writer.WriteAsync($"Msg #{i}");
Console.WriteLine($"Отправлено: Msg #{i}");
}
channel.Writer.Complete();
});
Теперь читаем данные по мере поступления через
await foreach — потребитель не блокируется и реагирует на каждое новое сообщение:await foreach (var msg in channel.Reader.ReadAllAsync())
{
Console.WriteLine($"Принято: {msg}");
}
🔥 Получаем асинхронную очередь: безопасную, читаемую и без ручных синхронизаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3❤1
Выбирай подходящий луч, чтобы мгновенно находить препятствия и держать плавную работу игры.
Что важно знать:
• Тонкий луч точен, толстый учитывает размеры цели;
• Фильтрация слоёв спасает от лишних проверок и нагрузки;
• Методы без выделений экономят память и стабилизируют кадры;
Правильный луч даёт точность и экономию ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥14❤6🤝3