Для некоторого параллельного кода я хочу соединить кучу сигналов вместе, как схему. В .NET мы можем сделать WaitAll или WaitAny для набора сигналов. Я хочу сделать что-то вроде этого:
WaitAny ( WaitAll (c1, c2), WaitAll (c3, c4) ) ;
К сожалению, библиотека не поддерживает объединение этих операций в более сложные деревья. Мои вопросы: (1) Есть ли способ сделать это в .NET? (2) Есть ли отличная библиотека для этого на каком-либо языке?
[редактировать: Кори попросил более подробную информацию]
Я хочу создать библиотеку для передачи сообщений. Может быть 10K небольших параллельных очередей, некоторые с сообщениями. Я хочу получить сообщение из очереди и выполнить обработчик, назначенный этой очереди. Тем не менее, я не могу получить следующее сообщение, пока не будет обработан обработчик (однопоточный на очередь). Поэтому на самом деле я хочу подождать как в очереди (есть сообщение?), Так и в коде (закончено с предыдущим сообщением?), Прежде чем выскочить и выполнить следующий элемент.