Wpis z mikrobloga

Treść przeznaczona dla osób powyżej 18 roku życia...
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Saly: Bo nie mogłem. To się miało wykonać w trakcie ładowania aplikacji a UI ładowało się nieco szybciej (tam były zawarte opcje także dla tego UI), więc byłby kłopot. Ponadto odpalało się to w App.cs w funkcji OnLoaded, która jest synchroniczna. I w WPF nie byłoby żadnego problemu.
  • Odpowiedz
  • 0
@Khaine generalnie zasada jest taka, że jak próbujesz zrobić coś prostego i nie da się tego łatwo zrobić to w 90% przypadków używasz frameworka niezgodnie z zamysłem autora. Inaczej mówiąc wbijasz gwóźdź śrubokrętem :)
  • Odpowiedz
@Maav: Próbowałem GetAwaiterem. Deadlock był chyba. Co śmieszne, nawet AsTask().Wait() odpalone na Dispatcher.RunAsync() kończyło się deadlockiem XD To już chyba bug jakiś po prostu, bo żeby Dispatcher nie zwrócił do głównego wątku? Ewentualnie zakleszczył się na samym .Wait().

@Yahoo_: No to M$ mogłoby dać płaski i krzyżakowy śrubokręt jak w WPF, a nie rzucić w pysk samym krzyżakiem i powiedzieć, że jak będziesz miał płaską śrubę to sobie
  • Odpowiedz
@Yahoo_: Wszystkie odpowiedzi na stacku mnie tak prowadziły. Generalnie UWP nie jest zbyt popularne, więc nie jest zbyt łatwo rozwiązywać takie problemy. Tak naprawdę doświadczenie z WPF mnie uratowało, bo bez ConfigureAwait(false) bym się zesrał już kompletnie. W momencie gdy Dispatcher nie zezwalał na synchroniczne wywołania ani nawet na oczekiwanie w nim na koniec wywołania asynchronicznego to już zaczęło się robić źle.
  • Odpowiedz
Ta robota strasznie ciebie męczy albo jakoś strasznie lubisz narzekać :-)


@ZapomnialWieprzJakProsiakiemByl: E tam, ja to lubię generalnie, ale M$ ma niekiedy dziwne drogi którymi podąża. Jak się nabierze wprawy bo się zobaczy co ten inżynier M$ miał na myśli w momencie jak to tworzył i jaką furtkę na coś przewidział, to wtedy idzie jak złoto. Problem w tym, że nie zawsze tak łatwo znaleźć tą "słuszną drogę".

@Yahoo_
  • Odpowiedz
@Yahoo_: Porzeźbiłem dzisiaj jeszcze. Podtrzymuję swój hejt a nawet wzmacniam go. Win 10 IOT zachowuje się inaczej niż środowisko UWP które działa na Win 10. Deadlocki nie występują na desktopie, ale jak wrzucisz na Raspberry to nagle zaczynają się pojawiać. Wyjebiste, dokładnie w takich warunkach chcesz wepchnąć użytkownikowi siłą asynci w mordę. Niezależnie od tego co zrobię, na Win 10 IOT zawsze zgubi kontekst (w tym konkretnym przykładzie). Na kompie
  • Odpowiedz