MVVMにおいてVMで非同期は必要か?async void/Taskのどちらが良いか?非同期処理の例外ハンドリングは?
-
masaru_b_cl
- 28033
- 1
- 17
- 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:18
async 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