2015年5月30日土曜日

WPF印刷での、マルチスレッド対応

[案1]

PrintDialogを他のスレッドから使う⇒NGでした。

InvalidOperationExceptionが発生します。

[案2]

PrintDialogのPrintQueueを、他のスレッド持って行きます⇒NGでした。

同じく、Writeの中でInvalidOperationExceptionが発生します。

[案3]

重い処理だけ、他のスレッドに持って行きました。

DispatcherObjectを継承するクラスは、基本的にスレッド境界を越えられないと思った方が良いかもしれません。

DrawingVisualもダメでした。Drawing.Freeze()を呼び出して凍った状態にしても、DrawingVisualがスレッドチェックに引っ掛かるので、撃沈。。。

0 件のコメント:

コメントを投稿