Home
Support
ActiveXのスレット間へのアクセスは、ComponentWorks++(Visual C++用のツール)ではサポートされません。
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
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.