• ベストアンサー

マルチスレッドを実現したい

VB6.0でマルチスレッドを実現する方法ってないのでしょうか? DoEventを使用するとどうしても現在実行しているスレッドを途中で停止して別のスレッドを実行し終わってから再び最初のスレッドに処理が戻るっていうふうになってしまいます…。 そうではなくて、あたかも二つの処理が同時に進んでいるように見せかけることってできないのでしょうか? <例> リストボックス1とリストボックス2があってそれぞれに大量のデータをAddItemしていく処理の時、はじめリストボックス1のAddItemの処理が実行されているとして途中からリストボックス2の方にもAddItemに処理を行おうとした時、リストボックス1のAddItem処理がすべて終了してからリストボックス2のAddItem処理を行うのではなく、あたかも二つ同時にAddItem処理がされているようにする…といった感じです。 VB6.0ではとても困難なことだと分かっていますが、どなたか分かる方おられたら教えて下さい、よろしくお願いします。 ”こんなのはどう??”なんて意見でも嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.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 とすると、もしかしてできるかもしれない。 もちろん未検証

ryuji0202
質問者

お礼

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

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

3本のプログラムに分けるしかないのでは? 連携は AxtiveX, DDE, メッセージとかでしょう。

ryuji0202
質問者

お礼

回答ありがとうございます! やはりそうですか…。う~ん…、他にあったら嬉しいのですが…。

関連するQ&A