Я хочу создать приложение C ++ в Visual Studio 2010, которое содержит 2 потока:
- чтение данных из внешнего файла
- запись данных во внешний файл
Я уже читал теорию о многопоточности, но не совсем понимаю, как ее использовать. Есть ли кто-нибудь, кто может показать мне, как я могу просто определить и запустить эти 2 потока в Visual Studio 2010?
В настоящее время у меня есть следующий пример, который не работает:
class Thread
{
public:
Thread();
int Start(void * arg);
protected:
int Run(void * arg);
static void * EntryPoint(void*);
virtual void Setup();
virtual void Execute(void*);
void * Arg() const {return Arg_;}
void Arg(void* a){Arg_ = a;}
private:
THREADID ThreadId_;
void * Arg_;
};
Thread::Thread() {}
int Thread::Start(void * arg)
{
Arg(arg); // store user data
int code = thread_create(Thread::EntryPoint, this, & ThreadId_);
return code;
}
int Thread::Run(void * arg)
{
Setup();
Execute( arg );
}
/*static */
void * Thread::EntryPoint(void * pthis)
{
Thread * pt = (Thread*)pthis;
pt->Run( pt->Arg() );
}
virtual void Thread::Setup()
{
// Do any setup here
}
virtual void Thread::Execute(void* arg)
{
// Your code goes here
}
Я также открыт для хороших уроков или примеров кода.