c++ - Simple error with the creation of a thread -
i try remember of how threads work, see c++11 simplify creation , utilisation of it. use answer post simple example of threading in c++ create simple thread.
but there's difference between me , answer of post, i'm not in main, create thread in constructor, , it's not same parameters.
here's simple code , try do:
i'm in class mainwindow.cpp :
//constructor mainwindow::mainwindow(qwidget *parent) : qmainwindow(parent), ui(new ui::mainwindow) { // constructs new thread , runs it. not block execution. thread t1(lancerserveur, null); ui->setupui(this); } void mainwindow::lancerserveur(){ std::cout << "le serveur se lance"; } the errors :
expected ';' before 't1' statement cannot resolve address of overloaded function thread t1(lancerserveur, null); i think parameters thread t1(lancerserveur, null); false.
could explain me how works ?
thanks.
you use std::cout, i'm assuming no using namespace std; or somewhere before thread. try std::thread.
try lambda std::thread t1([this](){this->lancerserveur();});
don't forget th1.join() before exiting constructor, else std::terminate called in thread destructor.
if thread in th1 run while, make class member variable , initialisation th1 = std::move(std::thread t1([this](){this->lancerserveur();})); in class destructor, th1.join();
Comments
Post a Comment