TGViewer
Channel Public Channel
Библиотека шарписта | C#, F#, .NET, ASP.NET

Библиотека шарписта | C#, F#, .NET, ASP.NET

@csharpproglib

Все самое полезное для C#-разработчика в одном канале.

Наши курсы: https://clc.to/y3LDtw

По рекламе: @tproger_sales_bot

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Subscribers
21.6K
Photos
2.9K
Videos
46
Links
5.4K

Showing posts older than #4843 · Back to latest

Older Posts 15 shown
Post #4842 6.49K
🤔 Как отменить задачу с несколькими источниками CancellationToken в C#: заметки от Steven Giesel

Представьте, что у вас есть долго выполняемая задача, которую вы хотите завершить корректно (или нет) и при этом вам нужно отслеживать сигналы отмены из нескольких источников.

Это может быть часто встречающимся кейсом в реализации BackgroundService или IHostedService, где вы хотите отслеживать событие IHostApplicationLifetime.ApplicationStopping и также какое-то другое событие/условие.


var hostToken = IHostApplicationLifetime.ApplicationStopping;

// Какой-то другой источник для отмены, передаваемый методом
var otherToken = ...;


Теперь вы хотите создать CancellationToken, который будет активирован при отмене любого из токенов. Но метод обычно принимает только один токен:


await Task.Delay(Timeout.Infinite, token); // Вы не можете передать два токена здесь


📌 Решение

CancellationTokenSource.CreateLinkedTokenSource создает новый CancellationTokenSource, который будет отменен, когда любой из связанных токенов будет отменен. Вы можете передать столько токенов, сколько вам нужно, и он вернет новый CancellationTokenSource, который вы можете использовать для создания CancellationToken для вашей задачи.


using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(hostToken, otherToken);
var linkedToken = linkedTokenSource.Token;

await Task.Delay(Timeout.Infinite, linkedToken); // Теперь вы можете передать связанный токен


Учтите, что CancellationTokenSource является IDisposable и должен быть утилизирован, когда вы закончите работать с ним.

Вы также можете отменить связанный источник токенов вручную, чтобы указать, что задача должна быть отменена. «Исходные» токены останутся неизменными, будет отменен только связанный токен.


using var t1 = new CancellationTokenSource();
using var t2 = new CancellationTokenSource();
using var t3 = CancellationTokenSource.CreateLinkedTokenSource(t1.Token, t2.Token);

t3.Cancel();

Console.WriteLine(t1.IsCancellationRequested); // False
Console.WriteLine(t2.IsCancellationRequested); // False
Console.WriteLine(t3.IsCancellationRequested); // True
Steven-Giesel Cancel WhenAny - linked CancellationTokenSource In today's short post, I will show you how to cancel a Task with multiple inputs (aka multiple CancellationTokens) using CancellationTokenSource and CancellationTokenSource.CreateLinkedTokenSource.
  • 👍 39
  • ❤ 2
Post #4841 5.95K

Forwarded from Библиотека программиста

🐳✈️ Docker ушёл из РФ! Инструкция по восстановлению доступа к Docker Hub для пользователей из России

Docker заблокировал доступ к своему главному репозиторию Docker Hub для пользователей из России. Однако есть способы обойти это ограничение и продолжить работу. В этом посте мы расскажем, как настроить альтернативные репозитории и зеркала.

🔗 Читать статью
🔗 Зеркало
  • 😁 32
  • 👏 10
  • ❤ 3
  • 🥱 3
  • 👍 2
Post #4840 7.54K
🕹 Разработку игры на Unity и Godot Game Engine

Пошаговое руководство по разработке игры Pong, с помощью которого вы углубитесь в уникальные особенности Godot, которые делают его отличным движком для разработки игр, рассмотрите преимущества использования C#, научитесь настраивать среду разработки, поймёте концепции Godot и прокачаетесь в разработке на C# + Godot. В конце вас ждет полезный список ресурсов сообщества.

☑️ Introduction To Game Development
☑️ Set up a Godot Game Development Environment
☑️ Game Design
☑️ Source Control Management with Godot
Asset Management
☑️ Godot Nodes and the Scene Tree
☑️ Adding Scripts To Your Godot Game
☑️ Godot Community Resources
  • 👍 10
Post #4839 7.43K
👨‍💻 До недавнего времени в справочной документации .NET API не было обратной ссылки на исходный код, но команда .NET не дремлет, поэтому добавила ссылки, объединяющие документацию с исходниками. Под катом — история о проделанной работе.

👉 Читать
  • 👍 18
  • 🔥 3
Post #4837 7.56K

Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение

💸📊 На сколько просели зарплаты в ИТ в 2024 году?

Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас.

🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей.

👉 Остальные данные — в статье
👉 Зеркало
  • 👍 6
  • 🤔 5
Post #4835 7.4K
🤔 Что делать в среду вечером C#-разрабу? Например, можно написать IoT .NET-приложение для Sipeed Lichee RV и запустить на RISC-V

До недавнего времени разрабатывать IoT приложения на C# можно было только для компьютеров, построенных на архитектуре ARM или x86.

В начале этого года был представлен неофициальный .NET 8.0 SDK, который уже сейчас вы сможете запустить на RISC-V процессоре под ОС Debian/Ubuntu.

В качестве платформы запуска автор взял одноплатный компьютер Sipeed Lichee RV на RISC-V процессоре Allwinner D1 (ядро Alibaba/T-Head Xuantie C906 RISC-V).

🟣 Часть 1: установка .NET 8.0 SDK на Sipeed Lichee RV
🟣 Часть 2: запуск приложения для работы с контактами GPIO и датчиком BME280 для замера температуры, влажности и давления
  • ❤ 12
  • 😁 5
  • 👍 3
  • 🔥 2
Post #4833 7.28K
💬 Разрабы, какую музыку вы предпочитаете слушать во время работы?

👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине

#холивар
  • 👍 117
  • ❤ 92
  • 🔥 70
Post #4832 7.51K
Кстати, у EF есть возможность повторить попытку в случае сбоя соединения, и ее полезно включить для большей устойчивости.

#efcore #tip
  • 👍 51
  • 🥱 6
Post #4827 7.68K

Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение

👨‍🎓️ 33 лучших вуза России для будущих программистов 2024-2025

Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.

🔗 Читать статью
🔗 Зеркало
  • 🥱 9
  • ❤ 3
  • 🤔 2
  • 😁 1
  • 👾 1
Post #4825 6.56K
💡Поддержка open telemetry в .NET становится все лучше и лучше с каждым выпуском. В .NET 8 вы можете настроить как логирование, так и метрики в конфигурации.

#dotnet
  • ❤‍🔥 17
  • 👍 12
  • ❤ 1
Post #4824 7.32K
💬 Мысли Эндрю Лока о primary constructors: 3 ➕ и 5 ➖

В предыдущей статье автор представил введение в primary constructors в C# 12. В новом материале вас ждет более глубокое погружение в тему с описанием основных достоинств и недостатков (по его мнению):

☑️ Основные подходы к использованию primary constructors
☑️ Лучшие юзкейсы primary constructors

▫️Базовая инициализация полей
▫️Инициализация в тестовом коде
▫️Dependency injection в MVC-контроллерах

☑️ Проблемные моменты, или «что не нравится»

▫️Duplicate capture
▫️Неявные поля не могут быть readonly
▫️Неявные поля изменяют макет структуры
▫️Путаница с соглашениями об именах
▫️Путаница с record
  • 👍 19
Post #4823 5.79K

Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение

💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии

Инженер ПО рассказал нам о своих выходных на хакатоне в Кельне, где с командой пытался создать AI-стартап всего за два дня. Участники прошли путь от подачи идей в пятницу вечером до демонстрации работающего приложения к воскресенью.

В качестве бонуса автор привёл список основных пунктов, которые необходимо выполнить для создания стартапа.

🔗 Читать статью
🔗 Зеркало
  • 🥱 9
  • ❤ 1
  • 👍 1
  • 👾 1
Post #4822 6.57K
🧰 Кстати, C# REPL поддерживает IntelliSense, установку NuGet-пакетов, а также ссылки на локальные проекты и сборки .NET. Отличный инструмент для экспериментов и изучения C# на Windows, Mac OS, and Linux.


dotnet tool install -g csharprepl
  • 🔥 20
  • 👍 6
  • 🌚 1
Post #4821 6.65K
🔗 Разработка сокращателя URL-адресов на .NET: мини-гайд от Milan Jovanović

Автор делится опытом проектирования простой системы сокращения ссылок и пишет её с нуля.

👉 Читать & смотреть гайд
  • 😁 9
  • 👍 7
  • 🔥 2
Post #4820 6.67K
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»

🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/82684bb8

На вводной части вас ждут:

1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/82684bb8
  • 👍 2
  • 😢 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →