Peek-Check-Dequeue
вызывает какую-то блокировку. Либо вы сами блокируете, что структура данных выполняет блокировку (потребуется блокировка, затем вызов вашего кода для выполнения проверки, а затем разблокировка).
Нет ничего встроенного или обычно используемого, чтобы помочь с этим. Просто сделайте запор самостоятельно.
Если у вас очень высокая частота таких операций (миллионы в секунду), тогда возникают проблемы с блокировкой. На этом этапе вам понадобится более умный дизайн. Это было бы больше работы и больше риска для ошибок.
IronRuby является проектом, поддерживаемым Microsoft, основывался на Динамическом Времени выполнения Языка.
Да, проект Ruby.NET. Отметьте, это не было обновлено с ноября 2007, таким образом, я не уверен что поддержка как теперь.
Править: Как другие указали, IronRuby поддерживается Microsoft, таким образом, это - вероятно, лучшая идея
Другой альтернативой является Iron Ruby, которая является, я думаю, официально санкционированный Microsoft.