言語:VB / Ver:2005 / プラットフォーム:Windows XP
以下の状況で画面のプロパティを変更した際にアプリがフリーズする現象が発生しました。
問題の解決のため何卒、ご協力お願い致します。
1.MainスレッドでApplication.Run()でメッセージループを行います。
2.Mainスレッドは画面を持ち、メモリ内の情報に従いデータを表示します。
3.別スレッドで、ActiveXを貼り付けたフォームを起動します。(BackGround(TRUE)、STA)
4.同スレッド内でActiveXにデータのアクセスを行い、画面表示用のメモリにデータを展開します。
5.この中で最初にActiveXに対してアクセスした後に、「画面のプロパティ」を表示し、何も設定を変更せず、そのままOKを押します。
6.MainスレッドのOnPaint(?)の画面の更新のWINDOWメッセージがとまり、画面が更新されなくなる
*ActiveXにアクセスしているスレッドは問題なく動作しています。
*画面のプロパティを操作しなければ、その他の動作には問題ありません
当初、ActiveX製品の不具合の可能性を検討したのですが、ActiveXアプリケーションと.NETアプリケーション上の実装上の問題の
可能性がありこのような実装に問題ないかを検討しております。
ざっくりとした推測なのですが、画面のプロパティのOKボタンを押すと、OS内のデザイン更新の処理が走り、その結果ActiveXコンポーネント内のある種の処理がその応答を行わず、アプリケーション内で、画面更新メッセージの制御を奪っているのではないかと思います。