ライブ タイルを使用して Windows 8 ストア アプリを作成しています。すべてのライブ タイルは、 x分ごとに更新する必要がある画像です。タイム トリガーを使用してバックグラウンド タスクを使用して、画像を生成し、タイルを更新しています。
イメージを生成するということは、新しいイメージを作成してその上にペイントすることを意味しますが、WriteableBitmap の新しいインスタンスを作成しようとすると、何らかの理由で例外が発生します。
var newImage = new Windows.UI.Xaml.Media.Imaging.WriteableBitmap(10, 10);
また
var newImage = BitmapFactory.New(10, 10);
この例外をスローします:
アプリケーションは、別のスレッド用にマーシャリングされたインターフェースを呼び出しました。(HRESULT からの例外: 0x8001010E (RPC_E_WRONG_THREAD))
これは、バックグラウンド タスクに UI スレッドがないためだと思いますが、なぜ WriteableBitmap に UI スレッドが必要なのですか?
これを回避する方法はありますか?バックグラウンド タスクで WriteableBitmap をインスタンス化するにはどうすればよいですか?