#ifndef FFMPEG_THREAD_H
#define FFMPEG_THREAD_H
#include <pthread.h>
class Thread
{
public:
Thread();
~Thread();
void start();
void startAsync();
int wait();
void waitOnNotify();
void notify();
virtual void stop();
protected:
bool mRunning;
virtual void handleRun(void* ptr);
private:
pthread_t mThread;
pthread_mutex_t mLock;
pthread_cond_t mCondition;
static void* startThread(void* ptr);
};
#endif //FFMPEG_DECODER_H
void* Thread::startThread(void* ptr)
{
Thread* thread = (Thread *) ptr;
thread->mRunning = true;
thread->handleRun(ptr);
thread->mRunning = false;
}
void Thread::handleRun(void* ptr)
{
}
В этом фрагменте кода thread.cpp. Внутри объекта потока он запускает запуск и имеет функцию HandleRun, но он пуст. Какова цель пустой функции HandleRun? Он ничего не делает.пустая функция для handleRun thread.cpp
Действительно ли 'Thread' предназначен для подклассификации с' handleRun', который является 'virtual'? Btw, retagging, так как это похоже на C++, а не C. – simonc
, так что у handleRun по умолчанию есть вещи внутри, а вышеприведенный фрагмент подклассифицирует его? – lilzz
В обратном порядке. Я предполагаю, что вы показали нам по умолчанию 'handleRun' и что намерение заключается в том, что подклассы переопределяют это. Если вы опубликуете определение класса для 'Thread' (его заголовок), мы можем сказать наверняка. – simonc