PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
22436 | 06/02/01 19:55:01 | PB9.0: 共有オブジェクトによるマルチスレッドについて By sasammy |
カテゴリ:PowerBuilderの不具合?
日付:2006年02月01日 19:55 発信者:sasammy
題名:PB9.0: 共有オブジェクトによるマルチスレッドについて
メインとなるウインドウでプログレスバーを表示させつつ、
共有オブジェクト(バックグラウンド)で時間のかかる処理を行うアプリを
SharedObject系の一連の関数を使用して作成したのですが、
実行形式(ネイティブ)にして実行した場合において以下の状態となります。
(メインのウインドウ上のボタンにRegister?UnRegisterの一連の処理を記述している)
1.アプリ起動後、初回のボタン押下時は正常にバックグラウンド処理が実行される
2.2回目のボタン押下時(Registerしたとき)、アプリが応答なし状態となる
ちなみに、インタプリタ及び中間コード(?)では2回目以降も問題なく実行されます。
なお、上記現象について、以下の条件でも同様に発生いたしました。
1.共通オブジェクトの処理を一切行わず(関数自体も削除)、Register?UnRegisterを行った場合
(共有オブジェクトで行う処理には依存していなさそうです)
2.各SharedObject系関数の前後に3秒程度のSleepを入れた場合
3.UnRegisterの後(前)で強制的にインスタンスを破棄(destroy)した場合
どうも、UnRegisterを行ってもインスタンスが破棄されていないようです。
(強制的にDestroyしてもNGですが・・・)
ランタイムの入っていない不特定のマシンで実行する必要があるため、
ネイティブでの実行ファイルの作成が前提となります。
いろいろやってはみたものの、お手上げ状態です。
原因・対処方法等ご存知であればご教示願います。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows XP
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.