C++11 を使用できない場合は、プログラミングの目的によって異なります。次の "できるだけ単純な" スレッド化の例は、CreateThread関数を使用してアンマネージ Win32 コードで記述されています。
#include <Windows.h>
#include <tchar.h>
#include <iostream>
using namespace std;
DWORD WINAPI ThreadFunction(LPVOID lpParam) {
WORD numSeconds = 0;
for (;;) {
Sleep(1000);
cout << numSeconds++ << " seconds elapsed in child thread!" << endl;
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[]) {
HANDLE hThread;
DWORD threadID;
WORD numSeconds = 0;
cout << "Hello world" << endl;
hThread = CreateThread(NULL, 0, ThreadFunction, NULL, 0, &threadID);
Sleep(500);
for (;;) {
cout << numSeconds++ << " seconds elapsed in main thread!" << endl;
Sleep(1000);
}
return 0;
}
このアプローチを使用する場合は、CreateThread に渡される関数ポインターに署名が必要であることに注意してください。
DWORD ThreadFuncion(LPVOID lpParameter);
その署名の説明はMSDNにあります。