MVVMにおいてVMで非同期は必要か?async void/Taskのどちらが良いか?非同期処理の例外ハンドリングは?
- masaru_b_cl
- 32321
- 20
- 7
- 1
大変遅れましたが XAML Advent Calender 2014 12/10分公開いたしました>< qiita.com/ugaya40/items/… WPF、怒りのDataContext伝播
2014-12-11 12:17:44非同期処理をMで閉じて、MのNotifyPropertyChangedをVMではReactivePropertyで拾う、とかやるとスッキリしそうねぇ
2014-12-11 12:49:29@masaru_b_cl 投げっぱなしはできますが、それが良いかどうかですよね。結局VMが非同期処理を開始するなら、そこでawaitすれば良いのでは?感が湧き上がるので。
2014-12-11 12:55:55@xin9le 私もその辺り、知見がないので自分の中での結論は出せないんですよね。ただ、PDSという面で見れば、非同期処理ってPの都合関係ないなとは思います。
2014-12-11 12:58:15@ktz_alias Mにasync Taskなメソッドはやして、VMからは await model.DoSomething(param); するってことですよね?
2014-12-11 13:21:43で、この記事みたいにICommandの実装がasync void Execute(param)になる? > 非同期プログラミング - 非同期 MVVM アプリケーションのパターン: コマンド msdn.microsoft.com/ja-jp/magazine…
2014-12-11 13:32:18async void Executeにごちゃごちゃ書かないで、await m.DoSomething(param);だけになることを目指すのが、現実解って感じなのかな?
2014-12-11 13:36:09@masaru_b_cl 基本はそれでいいと思う。問題はMから連続的にストリームでデータがやってくる場合で、単純にawaitできないので、VMはRxにSubscribeする形にする必要がありそう。多分RxはMに用意(定期的にプッシュするため)
2014-12-11 13:46:18@ugaya40 @xin9le Mには async void DoSomething(param)良いして、その中でawaitってことですよね?
2014-12-11 14:46:07