我想知道当对象卡在不同线程中的无限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)
}
}
解释:有一个 MyClass 的类对象,它创建一个线程并在无限循环中运行 MyPollingFn 方法。此方法的每次迭代都可以更改一些类变量。可以从持有对象的父线程中销毁对象吗?这有没有可能引起问题?