2014年5月19日月曜日

スレッド外にあるImageクラス(WPF)にWritableBitmapを割り当てる

WindowsのUIクラスは、基本的にメインのスレッドで動いており、他のスレッドから操作することはできないようになっています。例えば、他のスレッドからカメラの映像をリアルタイムで取り出し、それをImageクラス(WPF)に表示するという記述は原則できません。
もちろん、これを解決する策はあり、Invokerを経由すれば可能です。一番簡単な方法は、下記のサンプルソースに示すようにラムダ式を利用することで簡潔に表現できます。

なお、このケースでの注意点はもう1つあります。それは、Imageクラスに描画するためのWritableBitmapもスレッド外から操作できるように、Freezeしておく必要があります。実はここが一番の悩みどころだったりしました。



0 件のコメント:

コメントを投稿