Я создал простой пример c #, который использует барьеры, и я выдал исключение внутри одной из функций, и теперь я получаю неожиданный результат
phase 1 of DoWork1
phase 2 of DoWork2
phase 3 of DoWork3
Current phase 0
phase 2 of DoWork3
phase 2 of DoWork1
phase 3 of DoWork2
//so far everything is fine, lets throw an exception now
DoWork1 canceled
phase3 of DoWorn1
//end
, как вы можете видеть в коде, который я выдал исключениев методе DoWork1
и я ожидал, что все 3 метода будут обрабатывать исключения, но только первый делает, вторая проблема заключается в том, что только первый метод печатает «фаза 3 бла-бла», и я ожидал, что все 3 из них выведут его на консоль.Может ли кто-нибудь объяснить мне, почему это происходит
Код немного длинный, но в большинстве случаев это просто копирование