Windows VistaのCで必要なものとスレッドを使用するにはどうすればよいですか?
簡単なコード例を教えていただけませんか?
WindowsでCreateThread()を使用する方法について MSDNサンプル を次に示します。
基本的な考え方は、CreateThread()を呼び出し、スレッド関数へのポインターを渡すことです。これは、作成されたターゲットスレッドで実行されるものです。
それを行う最も簡単なコードは次のとおりです。
#include <windows.h>
DWORD WINAPI ThreadFunc(void* data) {
// Do stuff. This will be the first function called on the new thread.
// When this function returns, the thread goes away. See MSDN for more details.
return 0;
}
int main() {
HANDLE thread = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
if (thread) {
// Optionally do stuff, such as wait on the thread.
}
}
SHCreateThread() を呼び出すオプションもあります。基本的な考え方は同じですが、COMの初期化など、必要に応じてシェル型の初期化を行います。
CreateThread 関数を使用します。
セマフォについてもおっしゃっていましたね。そのためには CreateSemaphore を使用します。
アトミック操作とミューテックスは優れています。私はpthreadではなくCreateThreadなどを使用しています。