コード例 #1
0
	static DWORD WINAPI MyThread(
		LPVOID lpThreadParameter
		){
		Impl *This = (Impl*)lpThreadParameter;

		DWORD threadidx = GetCurrentThreadId();
		while (!This->m_exit){

			if (WAIT_OBJECT_0 == This->m_queueSemaphore.WaitAndDec(1000))
			{
				std::shared_ptr<MyTaskData> task;

				task = This->getTaskAndPop(threadidx);
				assert(task);	

				// run
				task->Run();
			}
		}
		return 0;
	}