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

96 просмотров

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта