アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6.0でマルチスレッドを実現する方法ってないのでしょうか?
DoEventを使用するとどうしても現在実行しているスレッドを途中で停止して別のスレッドを実行し終わってから再び最初のスレッドに処理が戻るっていうふうになってしまいます…。
そうではなくて、あたかも二つの処理が同時に進んでいるように見せかけることってできないのでしょうか?

<例>
リストボックス1とリストボックス2があってそれぞれに大量のデータをAddItemしていく処理の時、はじめリストボックス1のAddItemの処理が実行されているとして途中からリストボックス2の方にもAddItemに処理を行おうとした時、リストボックス1のAddItem処理がすべて終了してからリストボックス2のAddItem処理を行うのではなく、あたかも二つ同時にAddItem処理がされているようにする…といった感じです。

VB6.0ではとても困難なことだと分かっていますが、どなたか分かる方おられたら教えて下さい、よろしくお願いします。

”こんなのはどう??”なんて意見でも嬉しいです。

A 回答 (2件)

>3本のプログラムに分けるしかないのでは?


両手を挙げて賛成

クリエイトスレッドAPIがあるけど、使ったら落ちやすい。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=553567
マルチメディアタイマを利用したらどうなるだろうか?
List1.AddItem最中に
タイマ.Interval = 1
タイマ.Enable = True
としたらイベントが発生するはず。

タイマイベント内には
タイマ.Enable = False
for i = 1 to 100
List2.AddItem "ほげ"
next i

とすると、もしかしてできるかもしれない。
もちろん未検証
    • good
    • 0
この回答へのお礼

回答ありがとうございました!

試してみたのですがやはりうまくいきませんでした…。
やはりVB6.0では難しいですね(^^;

お礼日時:2003/06/20 08:43

3本のプログラムに分けるしかないのでは?


連携は AxtiveX, DDE, メッセージとかでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

やはりそうですか…。う~ん…、他にあったら嬉しいのですが…。

お礼日時:2003/06/18 20:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています