c++ builder / TThread > TThread終了時にポインタをNULLにする > OnTerminate ()処理でexternポインタにNULLをセットする
816 ワード
動作確認
C++ Builder XE4
TThreadでインスタンシエートした処理が何かの理由で終了した時、そのポインタ(例: TThread* ThrPtr)はNULLにならない。
そのため、ThrPtrを保持する処理からはThrPtrが終了してしまっているかはわからない。
検索したところ、NULLを設定する方法を提案している例が見つかった。
answered Apr 4 '13 at 20:34 by Remy Lebeau
によるコードが参考になる。
extern TMyThread *MyThread;
をTMyThread のヘッダーで宣言しておくOnTerminate ()処理にて
MyThread = NULL;
を実行する
extern宣言すると、コードの依存性が生まれる。
OnTerminate()にてインスタンス作成元のSetterを呼ぶようにしてフラグ
Author And Source
この問題について(c++ builder / TThread > TThread終了時にポインタをNULLにする > OnTerminate ()処理でexternポインタにNULLをセットする), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/decccb4bdc242628bf4e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .