Size: a a a

2021 February 15

G

George in pro.net
Потоконебезопасным
источник

G

George in pro.net
🤦‍♂как это по-русски?
источник

AI

Alexandr Imashev in pro.net
я понел
источник

G

George in pro.net
Если у тебя одна кнопка там асинхронная, то все вернется на гуевый поток, конечно, и на нем одном выполнится. Но всякие там Task.Run, а так же configureawait false так же могут отправить твой код выполняться на разные потоки, даже если ты не запускал тредов. Оно пойдет на тредпульные треды, и то же самое - словишь рейс кондишн.
Я подозреваю, что ты неспроста начал асинхронность городить для тяжелых вычислений - как правило следующий шаг - сделать task.run, в случае cpu-bound вычислений, иначе у тебя ui все одно будет подфризиваться.
источник

AI

Alexandr Imashev in pro.net
George
Ну попробуй для начала исключить любую асинхронность, и посмотри, что будет. Оттуда уже можно будет думать, как сделать обратно синхронным, или не в этом дело
благодарю, тот ебучий экспешн не валит
источник

AI

Alexandr Imashev in pro.net
George
Если у тебя одна кнопка там асинхронная, то все вернется на гуевый поток, конечно, и на нем одном выполнится. Но всякие там Task.Run, а так же configureawait false так же могут отправить твой код выполняться на разные потоки, даже если ты не запускал тредов. Оно пойдет на тредпульные треды, и то же самое - словишь рейс кондишн.
Я подозреваю, что ты неспроста начал асинхронность городить для тяжелых вычислений - как правило следующий шаг - сделать task.run, в случае cpu-bound вычислений, иначе у тебя ui все одно будет подфризиваться.
никаких Task.Run, etc. нет метод максимально простой
async Task Predict(Input input)
{
     await  _model.EvaluateAsync(input);
}

это если супер упрощённо описать то он примерно так выглядит
источник

AI

Alexandr Imashev in pro.net
поэтому я не особо понимаю, где там может возникнуть гонка за ресурсами, но она есть, по всей видимости
источник

G

George in pro.net
Тогда смотри конкретно по доке, для каких операций прописана thread-safety. Если ни для каких, то думай, как разграничивать доступ.
источник

G

George in pro.net
А это твои методы, или библиотечные?
источник

AI

Alexandr Imashev in pro.net
George
Тогда смотри конкретно по доке, для каких операций прописана thread-safety. Если ни для каких, то думай, как разграничивать доступ.
спасибо, ещё раз
источник

AI

Alexandr Imashev in pro.net
George
А это твои методы, или библиотечные?
фул библиотека от мелкомягких
источник

AH

Ayrat Hudaygulov in pro.net
Roman Bukin
Easy way to become Senior Azure Engineer @ Microsoft
И не только!
источник

DP

Denis Petukhov in pro.net
Alexandr Imashev
лично я треды сам не запускаю, использую только асинхронные методы, и если верить мелкомягким, то у них есть какие-то специальные защиты от race condition при async/await вызовах, а вот под капотом у Windows.AI.MachineLearning вызываются ли какие-то потоки или нет, я могу только гадать
Видимо этот эксепшн и есть специальная защита от race condition :}
источник

RB

Roman Bukin in pro.net
George
🤦‍♂как это по-русски?
не тредсейф😁
источник

G

George in pro.net
не дрейфь, сейф!
источник

E

EgorBo in pro.net
источник

E

EgorBo in pro.net
квиз - есть ли аллокации когда я вызываю IsInstanceNull ?
источник

IC

Ilya Chernoudov in pro.net
EgorBo
квиз - есть ли аллокации когда я вызываю IsInstanceNull ?
нету?🤔
источник

AH

Ayrat Hudaygulov in pro.net
EgorBo
квиз - есть ли аллокации когда я вызываю IsInstanceNull ?
по логике - да. Но щас ты расскажешь что тут йоба оптимизация
источник

IC

Ilya Chernoudov in pro.net
оптимизатор оптимизирует?
источник