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

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

05.01.2022, 12:43. Показов 2970. Ответов 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
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru