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 ответов

30 просмотров

Потому что 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
мне было бы не удобно листать логгер и смотреть ин...

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта