Я совершенно новичок в программировании с потоками, и, поскольку класс использует QThreads, мне интересно, почему я не могу вызвать функцию start
QThread изнутри себя, и ее функция run
начинает выполняться независимо от другихпоток (программа, кажется, падает, когда я делаю это).Вместо этого я должен вызывать функцию запуска, откуда бы объект не был объявлен.Почему это так?
Какой-то код:
class ClassWithThread : public QThread
{
public:
ClassWithThread() {}
someFunction() {start();}
run()
{
//do some stuff here
}
}
Именно этим и занимается мой класс.Когда я звоню someFunction
, программа вылетает.Если я удалю оператор start
из someFunction
и вызову start
из-за пределов программы, он будет работать нормально.