Przekazanie wskaźnika jako parametru do funkcji wywoływanej w wątku

0

Mam klasę w której mam 2 metody, jedna jest publiczna, druga prywatna.
Publiczna jest metoda start(Foo* foo), która umożliwa mi uruchomienie w wątku metody prywatnej process(Foo* foo);

void start(Foo* foo){
    std::thread threadFoo(process, foo);    //w jaki sposób mogę tutaj uruchomić metodę process w wątku przekazując do niej foo?
    threadFoo.join();
}

//Metoda process tak wygląda
void process(Foo* foo){
    while(true){
        ...
    }
}
0
#include <iostream>
#include <thread>
#include <functional>
using namespace std;

struct Foo{
	int x, y;
};

void procFoo(Foo &foo){
	foo.x = foo.y = 0xDeadBeef;
}

int main() {
	Foo foo;
	thread t(&procFoo, ref(foo));
    t.join();
}

http://melpon.org/wandbox/permlink/JhWrbUUPOSZp8XmU

Pobocznie: zainteresuj się nagłówkiem <future> http://www.cplusplus.com/reference/future/

1 użytkowników online, w tym zalogowanych: 0, gości: 1