170 похожих чатов

Всем привет. Кто ни будь может объяснить поведение Task.Run выполняемой

в ASP.NET контроллере?
public async Task ProcessTask()
{
await Task.Delay(200);

_ = Task.Run(async () =>
{
const int defaultOrderId = 1;
using var scope = _serviceProvider.CreateScope();
var scopedOrdersDataService = scope.ServiceProvider.GetRequiredService<IOrdersDataService>();
ILogger<OrdersService> _logger = scope.ServiceProvider.GetRequiredService<ILogger<OrdersService>>();
try
{
var ordersUri = "https://localhost:7036".AppendPathSegments("api", "orders");

_logger.LogInformation("Saving data to API");

await ordersUri.PostJsonAsync(new OrderRequest()
{
Id = defaultOrderId,
Status = "super"
});

_logger.LogInformation(message: "Getting data from DB");

var orderFromDb = await GetOrderByIdAsync(defaultOrderId);
_logger.LogInformation(message: $"order.id={defaultOrderId} status={orderFromDb.Status}");

_logger.LogInformation("Saving data to DB");

await UpdateOrder(defaultOrderId, "super_2");

_logger.LogInformation(message: "Getting data from API");
var orderFromApi = await ordersUri.AppendPathSegment("1").GetJsonAsync<Order>();

_logger.LogInformation(message: $"order.id={defaultOrderId} status={orderFromApi.Status}");
}
catch (Exception ex)
{
_logger.LogError(ex, "error (");
}
});
}
При выполнение этого метода, обновление данных через await UpdateOrder(defaultOrderId, "super_2"); не происходит :(. Почему?

38 ответов

22 просмотра

Потому что pastebin

Alexander-Pavlenko Автор вопроса
Dmitriy Bobrovskiy
Потому что pastebin

понятия не имею что это...

Alexander-Pavlenko Автор вопроса
Dmitriy Bobrovskiy
Узнаете - пишите

типичное ЧСВ из мира DotNEt-a?

Alexander Pavlenko
типичное ЧСВ из мира DotNEt-a?

Нет, типичное самоуважение.

Alexander Pavlenko
типичное ЧСВ из мира DotNEt-a?

не, тут не в языке дело - читать невозможно просто

Alexander-Pavlenko Автор вопроса
Dmitriy Bobrovskiy
Нет, типичное самоуважение.

Типичная мания доколупания

Alexander-Pavlenko Автор вопроса
BloodMoon
не, тут не в языке дело - читать невозможно просто

можно нормально объяснить,а не калом кидаться

Alexander Pavlenko
можно нормально объяснить,а не калом кидаться

ну просто это вещь очевидная в себе - вы же после отправки видите, в каком виде сообщение отображается

Alexander-Pavlenko Автор вопроса
Сергей
https://t.me/DotNetRuChat/704399

Какой пункт был нарушен

Alexander Pavlenko
можно нормально объяснить,а не калом кидаться

Вот Вам лично как, удобно читать присланное?

да чо вы душните

Alexander Pavlenko
да

моментальный эмодзи клоуна, сообщение отобразиться не успело

Igor Zabolotin
screenshot

люди с телефонов сидят

1) Смотри логи, там кетч поймал 2) Код говно: a) У тебя в ASP NET есть контейнер зависимостей, контролеры могут с контруктора брать логгер б) Сделай это все в сервисы, зачем столько операций на метод навесил в) Зачем делей вообще?

Alexander Pavlenko
да

Ты хочешь, чтобы тебе помогли . Так скинь норм код через Pastbin

Pad Duon
1) Смотри логи, там кетч поймал 2) Код говно: a) ...

Для дебага лучше юзай не логгер, а Debug.Write

Alexander-Pavlenko Автор вопроса
Айнур Якупов
Ты хочешь, чтобы тебе помогли . Так скинь норм код...

Эту фразу сказать можно по разному. Мне такая помощь нахер не упала с предъявами, не устраивает проходи мимо, есть желаение помочь - помоги.

Alexander-Pavlenko Автор вопроса

мне не помощь нужна, это гипотетическая ситуация

Igor Zabolotin
screenshot

Внимание, вопрос. Кто быстрее отработает - GCили таска, запущенная вникуда?))

Alexander-Pavlenko Автор вопроса
Alexander Pavlenko
т.е. там какой то race condition ?

Не совсем. Смотрите, Вы запускаете таску и не ожидаете её завершения. Нет никакой гарантии, что эту таску не грохнет как-либо GC (вроде как может, ибо таска висящая).

Alexander Pavlenko
т.е. там какой то race condition ?

Вообще, зачем там Task.Run в принципе?

Alexander-Pavlenko Автор вопроса
Dmitriy Bobrovskiy
Вообще, зачем там Task.Run в принципе?

Пример обработки долгоиграющей операции

Alexander Pavlenko
Пример обработки долгоиграющей операции

так ты верни таску эту а в хостед сервисе поэвейть

Alexander-Pavlenko Автор вопроса
Aleksandr Kiselev
так ты верни таску эту а в хостед сервисе поэвейть

ну это правильный подход который я практикую, нужно обяснить почему так нельзя

Alexander Pavlenko
Пример обработки долгоиграющей операции

Ты так запускаешь просто берешь поток из пула, который на первом же await пойдет обратно в пул

Anton 『被遗忘的社会』
почему лучше?

мне было бы не удобно листать логгер и смотреть информацию о дебаге, в дебаге все сухо, что написал то и видишь

Pad Duon
мне было бы не удобно листать логгер и смотреть ин...

Можно писать в логер который будет писать и в лог и в дебаг и куда еще нужно.

Pad Duon
мне было бы не удобно листать логгер и смотреть ин...

ну никто тебе не запрещает в логгер написать то, что хочешь и сконфигурить логгер так, чтобы он сыпал в консоль сообщения

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
а чем хуже?
Alexey Kulakov
10
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
1
Карта сайта