オブジェクトが別のスレッドの無限 while ループでスタックしているときに、オブジェクトでデストラクタが呼び出されるとどうなるかを知りたいです。
// Main thread creates the object
MyClass _obj = new MyClass():
// doing some stuff
delete _obj;
どこ、
MyClass::MyClass()
{
// Start a thread which calls MyClass::MyPollingFn()
}
MyClass:: MyPollingFn()
{
// runs in new child thread
while(true)
{
// doing some work
// sleep(5 seconds)
}
}
説明: スレッドを作成し、無限ループで MyPollingFn メソッドを実行する MyClass のクラス オブジェクトがあります。このメソッドを繰り返すたびに、一部のクラス変数が変更される可能性があります。オブジェクトを保持している親スレッドからオブジェクトを破棄してもよろしいですか? これが問題になる可能性はありますか?