ActiveXのスレット間へのアクセスは、ComponentWorks++(Visual C++用のツール)ではサポートされません。 使用ソフトウェア: Measurement Studio Add-ons使用ソフトウェア・バージョン: 3.0 使用ソフトウェア・バージョンに特化: N/A 二次のソフトウェア:
問題: C++プログラムでは、一つのスレット内で作成されたユーザインターフェースオブジェクト(例えば、CNiGraphやCNiButton等のオブジェクトのようなユーザインターフェース)は、他のスレッドからアクセスできません。問題は何ですか? 解決策: 弊社のユーザインターフェースクラスは、ActiveXコントロールをもとにしています。ActiveXコントロールとスレットは、完全にプログラムすることは難しいものです。現バージョンのCW++は、このActiveXのスレット間へのアクセスはサポートされておりません。 回避方法: 1.データソケットでの結合ー作業中のスレット内(スレットA)にCNiDataSocketオブジェクトを作成し、ユーザインターフェースオブジェクト(スレットB)をデータソケットで結合し、リアルタイムに集録したデータを表示する。 2.データがユーザインターフェースのスレットの為に用意がととのった時に、スレットAからイベントを生成する。ユーザインターフェースのスレット内でのイベントは、イベントハンドラ(EventHandler)で取り扱います。 (回避方法2での注意; 全てのスレットされたプログラム内では、セマフォ(semaphore)やミューテックス(mutex)等を用いて手動で保護する必要があります。) 関連リンク: 添付:
報告日時: 12/08/2000 最終更新日: 12/07/2000 ドキュメントID: 23LDANEZ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
