Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480

Почему нет исключений в потоках без await?

05.01.2022, 12:43. Показов 3081. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если в программе вызывается какая-нибудь задача без await и в этой задаче нет try catch, то никаких исключений не генерируется. Почему так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2022, 12:43
Ответы с готовыми решениями:

Почему CreateAsync ничего не делает без await?
public IActionResult Register() { _roleManager.CreateAsync(new IdentityRole { Name = "Moderator"}); return View(); } ...

Почему первый вариант дает исключение "Недопустимая операция в нескольких потоках", а второй нет?
есть два варианта кода: Task.Run(() => { for (; ; ) { ...

Есть ли утечка памяти при использовании Task без await и, соответственно, без Dispose()?
Есть асинхронный метод, возвращающий Task. Если использовать этот метод без await и, соответственно, без Task Dispose(), будет ли утечка...

20
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
06.01.2022, 01:07
Лучший ответ Сообщение было отмечено Fylhtq05 как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
В тот метод, где вызывается Task без await.
Задача - это единица работы.
Создание задачи и запуск её на выполнение совершенно не связаны с кодом выполняющимся в самой задачи.
Если при выполнении задачи возникло исключение, то оно записывается в статус задачи Task.Exception.
Но после выполнения нужно прочитать это свойство и поднять его в основном потоке.
Один из способов сделать это - цепочка из async-await.

Метод же в котором создавалась и/или запускалась задача, после выполнения этих действий, продолжает своё выполнение.
Поэтому вернуться в эту точку (строку) кода просто невозможно.
На момент исключения выполняется уже совершенно другой код, в совершенно другом методе.
Без await можно принудительно остановить поток после запуска задачи.
Но это тоже самое что делает и await.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.01.2022, 01:07

Почему с конструкцией using {.} работает, а без using {.} - нет?
Здравствуйте. Есть простой пример (из mdsn), который в архив добавляет текстовый файл с именем Readme.txt и небольшим текстом...

Async и Await, нет параллельности
Вот код : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...

Асинхронно ждать без await
Всем привет. Есть древний код, который обновляет данные в таблице. Нужно запустить его асинхронно и дождаться результатов. Проблема в...

Почему async/await выполняются синхронно?
Добрый день, Гуру! Немного запутался в логике работы async/await, очень прошу просветить..) Есть несколько асинхронных методов,...

Файловый поток в Universal Windows Platform без Await
Добрый день! Кто-нибудь может мне подсказать как получить файловый поток в UWP без вызова Async методов? Я не хочу их использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru