Windows Phone 7にマルチタスクが不要な理由
だいぶ前に「WP7はできるだけシングルタスクになるように進化している」というのを某氏が言ってたのですが、自分の中では実装されてないだけで勝手に将来に期待とか思っていました。
でも、動画見て意味をようやく理解できた感じ。なるほど、高度に進化したシリアライズ込みのシングルタスクはマルチタスクと見分けがつかない。
Windows Phone 7は別のアプリにスイッチした際に必ずアプリは終了するのですが、その際にアプリの進行状態を保存したり、復元するための仕組みがフレームワークとして用意されている*1ため、それをきちんと実装することによってあたかもマルチタスクをサポートしているように見せることができるわけですね。
アプリ自体が終了してしまうことによって、このサスペンド/レジュームを実装しようと言う気持ちは確かに高まりますし、サポートしているアプリの率も自ずと上がるのでしょう。次のアップデートで起動高速化がアナウンスされた理由も、このタスクスイッチの時間をできるだけ減らすためだと理解できます。
iOSのマルチタスクもにたような仕組みですが、こちらはプロセスをメモリに残して、CPUの時間割当をカットする方法。電池やメモリに影響がありそうですよね。でも、WP7はプロセスも終了してしまうのでその心配すらしなくてもいい。
あとは、ダウンロードとかアップロードとかでちょっと時間がかかるタスクがバックグラウンド実行できるようになれば、言うことなしなのですが。これは、マルチタスクというよりもバックグラウンドタスクですしなんとか実装してほしいなあ。*2