これを達成する方法はありますか?
たとえば、10 個のワーカー スレッドがタスクをプルしている I/O 完了ポートがあります。各タスクはオブジェクトに関連付けられています。一部のオブジェクトは同時に処理できないため、1 つのスレッドがこれらのオブジェクトの 1 つを処理しているときに、2 番目のスレッドがこのオブジェクトを必要とするタスクを取り出した場合、2 番目のスレッドは最初のスレッドが完了するまで待機する必要があります。
回避策として、オブジェクトはリリース時に通知されるイベントを持つことができます。タスクが受信されたためにロックされたオブジェクトが必要なためにスレッドが「スタック」している場合、ロックされたオブジェクトが解放されるか、新しいタスクがキューに入れられるのを待つことができます。新しいタスクを取得すると、処理できなかったタスクをキューに戻します。
私は別のアプローチを知っていますが、これは存在すべき機能のようです。これは Windows API で実現できますか?