>>65
そもそもDirect Graphicsがフォームとは別のスレッドでDeviceを初期化できるように設計されてない。
どうしてもスレッドを分けたいなら初期化はフォームと同じスレッドでやって、
できたDeviceのインスタンスをメインループに渡すしかない。
ただし、Device.Resetとかもフォームと別スレッドでは実行できないので
フォームのメッセージ処理でデバイスの状態を監視するなど注意深く設計する必要がある。

ちなみに別スレッドから呼んじゃいけないメソッドはヘルプに書いてある。
(プログラミングガイド>プログラミングのヒント>マルチスレッド処理の問題)