Size: a a a

2021 July 26

AK

Andrew Kravchuk in CODE BLOG / C#
Сложна, потом погуглю
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Спасибо
источник

P

Phantom in CODE BLOG / C#
Ну, ты знаешь что такое контекст синхронизации?
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Нет
источник

AK

Andrew Kravchuk in CODE BLOG / C#
В том то и дело
источник

P

Phantom in CODE BLOG / C#
Или хотя бы то, что код после await выполняется в вызывающем потоке (при наличии контекста синхронизации)
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Ну это понятно
источник

P

Phantom in CODE BLOG / C#
Ну вот, отсюда и дэдлок
источник

AK

Andrew Kravchuk in CODE BLOG / C#
А почему нет дедлока с await?
источник

P

Phantom in CODE BLOG / C#
Потому что, мы не блокируем вызывающий поток
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Погоди
источник

AK

Andrew Kravchuk in CODE BLOG / C#
А в чем разница GetAwaiter().Result() и Result тогда?
источник

rr

razumovsky r in CODE BLOG / C#
.
источник

AK

Andrew Kravchuk in CODE BLOG / C#
А и все?
источник

AK

Andrew Kravchuk in CODE BLOG / C#
В обоих случаях синхронно?
источник

rr

razumovsky r in CODE BLOG / C#
да
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Понял
источник

rr

razumovsky r in CODE BLOG / C#
а как еще то
источник

P

Phantom in CODE BLOG / C#
Ну то есть, когда делаешь .Result или GetAwaiter().GetResult() то твой поток1 ждет когда поток2 закончит работу, а чтобы поток2 смог закончить работу, он должен в поток1 выполнить код
источник

P

Phantom in CODE BLOG / C#
Да
источник