It seems that there’s nothing in .NET similar to MsgWaitForMultipleObjects, I needed a semaphore list with the ability to wait for an item to be released (and to get that semaphore’s index). The closest thing I did was a loop to wait for each semaphore a time slice, however it’s far from optimal. Still looking into it.