投稿日 | : 2004/05/24(Mon) 16:50 |
投稿者 | : フレ |
URL | : |
タイトル | : Re^2: イベント処理中に違うイベントの処理を行う方法 |
こんにちは、フレです。
よろずやさん回答ありがとうございます。
> > ActiveX EXE を使って
> > スレッドモデルを「オブジェクトごとのスレッド」にすれば
> > ループの処理をそれぞれ別のスレッドで行うように実装できないかなぁ?とも
> > 考えたのですが、標準EXEのフォーム等から
> > ActiveX EXE のクラスのメソッドを呼び出した場合、
> > 5秒以内にメソッドが終了しないと
> > フォームをクリックした契機で
> > 「コンポーネントが使用できません。」といった
> > ダイアログが表示されてしまいます。
>
> マルチスレッドとして動作するようにActiveX.Exeを作れば
> ちゃんと動くはずですよ。
> ActiveX内にタイマーを仕掛け、外から呼ばれたときはタイマーを起動して
> すぐに呼び出し元に戻る。
> 直後に、ActiveX内でメソッドが動き始める。
> メソッド終了前にメイン画面をクリックしても、問題ありません。
>
「ActiveX内にタイマーを仕掛け、外から呼ばれたときはタイマーを起動する」っていうのは
以前思いつきましたが、裏技っぽいのでちょっと敬遠していたのですが
るしぇさんからご指摘いただいてVBのヘルプを参照してみると
VBのヘルプにも普通に載っているんですね〜。
ActiveX Exeをぜんぜん使っていないので検証しつつ
教えていただいた方法で実装を検討したいと思います。
以上です。
教えていただいてありがとうございました。