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