CancellationToken ничего не отменяет.

Я — «Папочка Разработки»: пишу о карьере .NET/C#, собесах и том, как продавать свои навыки дороже. Без воды: разборы утечек памяти, практические гайды по интервью, резюме с цифрами и честные кейсы с рынка. Плюс немного про ИИ — как делегировать ему рутину и ускорять работу. Заходи, если нужен понятный план действий, а не мотивационные лозунги.

cancellationtokendotnetthreadsleep
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1));

await Task.Run(() => Thread.Sleep(10_000), cts.Token);

Отмена пришла через секунду. Делегат проспал все десять, await не бросил исключение, задача завершилась успешно 🌟

Токен как пожарная сигнализация: орёт, но не тушит. Тушит тот, кто услышал. HttpClient рвёт запрос, драйвер PostgreSQL шлёт базе команду отмены, Task.Delay убирает таймер. А Thread.Sleep не слышит ничего.

Кто на токен не смотрит, тот не остановится. Сколько его ни передавай.

Снаружи поток тоже не остановишь: Thread.Abort в современном .NET бросает PlatformNotSupportedException.

В ролике показал сервис, где сигнализация орала, а база не слышала: токен в каждом вызове, а PostgreSQL доделал 4 запроса из 4 🌟

https://youtu.be/hG6DZFjAFe8

Дискуссия

Дмитрий
Данко
А на чем делают клиент (фронт) кросс платформенных приложений сейчас?
Electron / Avalonia / Tauri (вроде таури, но там какой-то похожий по названию есть, я все время путаю)
Mikhail
Данко
А на чем делают клиент (фронт) кросс платформенных приложений сейчас?
На реакте 😂
Alexandra Bakina
Данко
А на чем делают клиент (фронт) кросс платформенных приложений сейчас?
электрон еще у нас пытались внедрить электрон + реакт
Andrew Bondaryuk
Дмитрий
Electron / Avalonia / Tauri (вроде таури, но там какой-то похожий по названию есть, я все время путаю)
Для десктопа Avalonia/Uno ;) Если фронт на вебке, то выбор как в Азбуке Вкуса.
Дмитрий
Andrew Bondaryuk
Для десктопа Avalonia/Uno ;) Если фронт на вебке, то выбор как в Азбуке Вкуса.
У меня зумеры на фронте. Им только электрон))
Andrew Bondaryuk
Дмитрий
У меня зумеры на фронте. Им только электрон))
Зачем электрон? React/Vue/Angular/Svelte/SolidJS не подошли? ))
Andrew Bondaryuk
Дмитрий
Если правильно помню, то электрон поддерживает react, vue, blazor. Он же не заменяет фрейм. Хотя визуально какое-то говно получается и смущает Хард ресет на ctrl r в десктопе
Это я иронизирую - до сих пор с содроганием вспоминаю сколько гиткракен на старте отжирает памяти ))
Дмитрий
Andrew Bondaryuk
Это я иронизирую - до сих пор с содроганием вспоминаю сколько гиткракен на старте отжирает памяти ))
А он на электроне?
Andrew Bondaryuk
Дмитрий
А он на электроне?
yep
Присоединиться к обсуждению →

Читайте так же