最近やってます。
でもやってみると簡単なんだけど、想定しないといけないことがいろいろありますねぇ。
Thread _th;
プログレス画面 disp;
public void Exec()
{
this._th = new Thread(new ThreadStart(スレッド処理メイン));
using ( this.disp = new プログレス画面 () )
{
this._th.Start();
this.disp.ShowDialog();
}
}
こんな感じでスレッドを作って、.Startするだけでスレッドは動き出します。
このワーカスレッド側からの応答を受けるためにいろいろごそごそするわけですが、スレッド開始からモーダル画面にユーザ側を閉じ込めるまでの間にワーカスレッド側でエラーが発生すると、例外が発生するんですよね。
他に、ワーカスレッド側のメインって要はプログラムエントリ見たいな物だから例外を受け渡してあげる方法も考えないといけないし。
いろいろ考えてある程度の方が決まってくればそのうちこうかいということで。