2011-01-19 6 views
1

ミューテックス(クリティカルセクション)を一定時間ロックするにはどうすればいいですか?そのためのAPI関数はありますか?私が見る限り、窓の中にはそういうものはありません。もしそうなら、手動で実装することは可能ですか?WinAPIのタイムアウトミューテックスロック

ありがとうございました。

+2

なぜそれをしたいですか?可能な限り短い時間mutexをロックするように努力する必要があります(そうしないと、他のスレッドを不必要にブロックしてしまいます)。それを超えて、ミューテックスを実行する前にミューテックスをロック解除すると、恐ろしいデータ破損につながります。 –

+0

私はミューテックスのロックタイムアウトについて話しています。実際、私は窓のためのpthread_mutex_timedlockのアナログに興味があります。 – ledokol

+0

決して利用できないミューテックスをブロックしてタイムアウトした場合、Sleep()を使用してみませんか? – Zak

答えて

2

のWin32でpthread_mutex_timedlock()の等価物はMutexを使用しwait-functionsのいずれかで(INFINITE以外)のタイムアウトを指定しています。

+0

ありがとうございます、これは私が探している解決策です。確認して戻ってきてください。 – ledokol

+0

これは、あまりにも複雑なSleep()呼び出しを説明していると思います。 – Zak