unsigned __stdcall TaskQueue::Thread(void *argList) { DWORD threadID = GetCurrentThreadId(); Task * task; TaskQueue * taskQueue = (TaskQueue *)argList; while(1) { taskQueue->logger->Log(LOG_DEFAULT, L"Thread[%d] Before GetTask().\n", threadID); task = taskQueue->GetTask(); taskQueue->logger->Log(LOG_DEFAULT, L"Thread[%d] After GetTask().\n", threadID); if (task) { task->Run(); taskQueue->logger->Log(LOG_DEFAULT, L"Thread[%d] Task complete.\n", threadID); } else break; } taskQueue->logger->Log(LOG_DEFAULT, L"Thread[%d] Before exit.\n", threadID); return 0; }