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