Recordという関数の中で、スレッドを作成します。スレッド関数をThreadFnとしましょう。 ThreadFnの先頭から始まるThreadFnのコードブロックが完了するまで、Recordが待機するようにします。 どうすればいいですか?私はミューテックスで試しています。しかし、CreateMutexをどこに置くべきか、そしてReleaseMutexをどこに置くべきかはわかりません。あるスレッドが別のスレッドの一部を終了するのを待たせる方法は?
私は以下を試みました。しかし、それは動作していません。その後、最初のコードブロックが終了した
ghMutex = CreateMutex(NULL, FALSE, NULL);
で 、
ReleaseMutex(ghMutex);
インサイド録音:
Create the thread
WaitForSingleObject(ghMutex, INFINITE);
Close thread handle
CloseHandle(ghMutex);
グローバル変数
HANDLE ghMutex = NULL;
インサイドThreadFnを持って
動作しません。発信者は待っていません。 – Avinash
devsはミューテックスを誤って使用しようとしているのはなぜですか?他のスレッドに信号を送る場合は、適切なシンクロオブジェクトを使用します。 'イベント'や 'セマフォ'を探します。どちらがあなたが望むように見えるかを行います。ミューテックスは、これに使用する間違ったオブジェクトです。 – ThingyWotsit
@ThingyWotsitなぜあなたは控えるべきですか?彼は明らかに、この理由を理由にこの質問を投稿している。彼は単にミューテックスを使用することに限定されているか、「イベント」および/または「セマフォー」について知らなかった。 –