Я играю с C++ и pthreads, и пока все хорошо. Я могу получить доступ к функции-члену класса, если она статична, и я прочитал, что могу получить доступ к обычным функциям-членам класса, если передаю «это» в качестве аргумента с pthread_create, потому что C++ делает это под капотом. Но моя проблема в том, что я хочу дать int этой функции, и я не знаю, как сделать несколько аргументов с pthread_create.pthreads и C++
1
A
ответ
6
Пропустить указатель структуры.
struct Arg {
MyClass* _this;
int another_arg;
};
...
Arg* arg = new Arg;
arg->_this = this;
arg->another_arg = 12;
pthread_create(..., arg);
...
delete arg;
0
вы можете попробовать повысить библиотеку потока и использовать повышение :: Bind() Вот пример,
class MyThread
{
public:
MyThread(/* Your arguments here */) : m_thread(NULL)
{
m_thread = new boost::thread(boost::bind(&MyThread::thread_routine, this));
}
~MyThread()
{
stop();
}
void stop()
{
if (m_thread)
{
m_thread->interrupt();
m_thread->join();
}
}
private:
void thread_routine() {... /* you can access a/b here */}
private:
int a;
int b;
boost::thread *m_thread;
};
Смежные вопросы
- 1. Pthreads and signals C++
- 2. C pthreads and signaling
- 3. C Номера Pthreads
- 4. posix pthreads in c
- 5. Pthreads and Structures C++
- 6. Merge Sort (pthreads) C++
- 7. Ошибка компиляции Pthreads C++
- 8. Использование pthreads в C++
- 9. C Значения Mutex Pthreads?
- 10. Pthreads для Visual C++
- 11. C++ pthreads и данные по разложению структуры
- 12. C++ таймер с только pthreads
- 13. C - Двойная ошибка с Pthreads
- 14. C++ erroring создание п pthreads-
- 15. c - глобальные переменные в pthreads
- 16. C - Pthreads Использование функции контроллера
- 17. C - Linux - Pthreads and Semaphore
- 18. C Продюсер-потребитель, использующий PThreads
- 19. Killing Threads with pthreads - C
- 20. C++ pthreads/semaphores не работает
- 21. Pthreads и динамическая память
- 22. Pthreads и параллелизм
- 23. pthreads и opencl
- 24. Функция рекурсии и pthreads
- 25. Получение ресурсов и pthreads
- 26. Stage3D и pthreads
- 27. PHP-FPM и pthreads
- 28. Pthreads/ожидание (и статус)
- 29. Использование pthreads и malloc
- 30. Wait notify pthreads unix C++
Что мне делать с _this в Си ++? Ничего? – vincentkriek
@user: «Доступ к функциям элемента обычного класса». – kennytm
Я думаю, что было неясно, чтобы pthread_create выполнял функции C++, они должны быть статическими. Я бы хотел, чтобы они не были статичными, если это возможно. – vincentkriek