Wpis z mikrobloga

@hiro: await_service.GetBalanceAsync() nie jest awaitowany, więc nie ma sensu oznaczać metody Start() jako async bo i tak pójdzie synchronicznie.
  • Odpowiedz
@hiro: nie znam tego jezyka ale prywatny setter? ( ͡º ͜ʖ͡º)

A przynajmniej tak wyglada ;p

Znalazlem juz na stacku po co to jest. Ale chory jezyk xD
  • Odpowiedz
@hiro: Ze niby void -> Task? Zależy co Ci jest potrzebne, jak wywołujesz z nadrzędnej metody i chcesz mieć obsługę wyjątków na samej górze to możesz zrobić Taska żeby poczekać, ale jak np Start() wywołasz z Commanda który sam w sobie nie obsłuży wyjątku to możesz mieć void i obsłużyć Ex w Starcie.
  • Odpowiedz
@hiro: Jakby ktoś chciał wiedzieć, to funkcja Start jest asynchroniczna i zwraca typ void. Jest to zła praktyka, ponieważ program po wywołaniu metody GetBalanceAsync nie zaczeka na zwrócone przez nią dane. Jeżeli metoda GetBalanceAsync napotka na błąd, to "nie będzie miała gdzie wrócić" i rzuci wyjątkiem na wątku UI (głównym wątku aplikacji), a to z kolei powoduje crash aplikacji/wyświetlenie brzydkiego błędu. Dodatkowo zmienna Balance może być używana zaraz po wywołaniu
  • Odpowiedz