Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Ну обычная и правильная практика.... то что ты говоришь... 05.09.09 05:16 Число просмотров: 2764
Автор: void <Grebnev Valery> Статус: Elderman
|
> Может быть я поступал не слишком оптимально, но я как > правило в таких случаях вызывал глобальную функцию, > аргументом которой передавал указатель на объект. А уже > потом от этого указателя вызывал метод, который хочу иметь > как рабочую функцию треда. Ну обычная и правильная практика.... то что ты говоришь. Такая (обычно private) мембер функция объявляется static.
class Worker{
public:
HANDLE start(unsigned long rand_seed)
{
::ResumeThread(m_handle);
return m_handle;
}
...
...
private:
static DWORD WINAPI worker_proc(LPVOID lpParam)
{
Worker& worker =reinterpret_cast<Workergt;(lpParam);
...
...
worker.work() ;
...
return 0;
}
virtual bool work(void)=0;
HANDLE m_handle;
Worker & operator=( const Worker & ) {}
protected:
...
Worker()
{
m_handle = ::CreateThread(NULL,0, worker_proc, (LPVOID)this, CREATE_SUSPENDED, NULL);
}
};
---
|
|
|