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

90 просмотров

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

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

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

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

30500 за редактор? )
Владимир
47
Недавно 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
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта