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