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

А вот кто знает, зачем это нужно делать по сути

синхронный метод, который скажем обращается к БД для проверки коннекшна формально асинхронным таким способом?

async Task<T> CheckConnection(...)
{
await Task.Delay(1);
}

34 ответов

21 просмотр

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

Igor
Что?

Ты чет фигню сказал

Igor
Где именно?

https://t.me/DotNetRuChat/1523962

> формально асинхронным это не сделает запрос в базу асинхронным для чего здесь await Task.Delay(1)? асинхронные методы выполняются синхронно до первого await и если я правильно понял, там после этого идет синхронный запрос в базу поэтому чтобы сразу вернуть управление вызывающему потоку, и соффлоадить континуэйшн на тред из тред пула то бишь чтобы вызывающий поток не ждал синхронного похода в базу но Task.Delay(1) это хуйня, для этого есть Task.Yield()

Сергей
> формально асинхронным это не сделает запрос в б...

Так в любом случае хуйня, можно просто ебануть Task.Run

Сергей
> формально асинхронным это не сделает запрос в б...

Там может быть что угодно, лишь бы канпелятор не убрал await

Phantom
Так в любом случае хуйня, можно просто ебануть Tas...

можно, но это еще дополнительные накладные создаст

Phantom
Вот опять ты несешь фигную

Когда знает что авэйтить нечего будет

Phantom
Сделав тоже самое, что и await Task.Yield?

ну померяй с await Task.Yield() и с await Task.Run() чет мне кажется что разница будет

Phantom
А мне лень!

фантома еще никто не передушнил

Igor
Когда знает что авэйтить нечего будет

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

Сергей
а пример есть?

Читаем варнинг

Оно await не убирает

Верно, его там и нет. Убирает асинк. А если есть авэйт, то не убирает

Igor
Верно, его там и нет. Убирает асинк. А если есть а...

где убирает? можно пример кода а не ворнинга

Сергей
где убирает? можно пример кода а не ворнинга

Ну в IL убирает, где ж ещё. Не делается стэйтмашин

Сергей
пример на https://sharplab.io/ пж

Проверь сам, пжл. Я с телефона. Где то помню читал

Igor
Проверь сам, пжл. Я с телефона. Где то помню читал

ну вот я чекнул, не убирается стейт машина

Сергей
ну вот я чекнул, не убирается стейт машина

Именно для этого метода? Может у тебя она там для вызывающего?

Это потому что таск наверное. С войдовым может будет как я говорю. Но правда у автора вопроса тоже таск, так что возможно там реально await Task.Delay ни на что не повлияет

Igor
Это потому что таск наверное. С войдовым может буд...

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

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

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

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
У меня вопрос попроще, почти нубский: нужно заставить сайт эво 1.4.34 перевести с PHP 7.4 на 8.2. Понятное дело, что дополнения обновить-проверить, а с основной системой как ...
Вячеслав Кузьменко
5
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
Карта сайта