ランダム@マックです。

>加藤です。
>
>とりあえず、そのファイルのコピーをするところは、マルチスレッドを使わずにや
>ることにしました。
>モードレスダイアログをつくり、キャンセル処理は、ユーザー定義メッセージを使
>い処理しています。
>やはり、そうすると、コピーをしている最中にもうひとつコピーをやりたい場合が
>困ってしまいます。
>それを解決するには、やはり、マルチスレッドしかないのでしょうか?

 コピーをnKB行えば、一度メインメッセージループにメッセージを送り、
キャンセルなどのメッセージが無ければ、またコピーを行う。その時に、
もし別のコピーもしているならば、そのコピーも行う、、っという
手法を使えば出来ると思います。
 コピーするデータをキュー管理し、またグローバル変数に現在のコピー
実行数、キューテーブル(配列定義で複数対応)すれば、出来ると思います。
 状態遷移のマトリクス関数を作り、この場合にはこの処理をさせるって
感じで作成すればできると思います。

 タイマーを使った方がよいかな、と思いましたが、それだとスレッド
と変わんないので。

 本当なら、サンプルソースを付けるべきだと思いますが、私の自宅環境は
Macなので、、、申し訳ないです。いつかはDOS/Vマシン買います
(ボーナスシーズン?)。それまで、会社でWINプログラムします。


>UI(ユーザインターフェース)スレッドとは、どんなものなのでしょう?

 ただ単に、メニューから何かを選択したときに、実行処理管理スレッド
みたいなにのに、メッセージを送信(あれをさせる、とか)するだけの
スレッドで、たくさんのダイアログを出させるUIなら、排他処理など
(この画面表示時には、この画面はマスクさせるとかです)などで大変
なので、UIにはそれだけを管理させるって感じですか。
 実際の処理はは実行処理管理スレッドなどが全部します(コピー中に
UIスレッドより、キャンセル通知を受け取った時の処理など)。


 スレッドでしたら、コピー処理毎にスレッドを生成するってことが
できますね。しかし、コピー最大数の制限がつくかもしれません
(スレッドIDの管理などで)。

 どの方法がベストかは、処理によると思います。


 By びぎなー of Windows




_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  Handle  :Kaz、Random
  Occupation:Programmer
  Birthday :21,Jan,1974
  Blood Type:B
  Internet :c...@enjoy.ne.jp
  Nifty ID :NCV01368
  Address  :Urawa-City, Saitama-Pref.
  Nation  :Japan
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/