Я перенес неблокируемый псевдокод очереди здесь на C #. Приведенный ниже код представляет собой почти дословную копию статьи.
Какой подход вы бы использовали для проверки реализации?
Примечание: я работаю в VS2010, поэтому у меня пока нет поддержки CHESS.
Edit:
Я удалил рассматриваемый код, чтобы какой-то ничего не подозревающий разработчик не использовал его - потребовалось немало изменений, чтобы освободить его от ошибок ... и я все еще не был на 100% уверен, что он свободен от ошибок , При тестировании методом грубой силы я не смог заставить его работать лучше, чем решение на основе блокировки.
Кроме того, поскольку я нацелился на 3.5, я подумал, что я SOL с параллельной очередью 4.0. Платформа 3.5 RX включает в себя ConcurrentQueue, так что это было действительно забавное небольшое программирующее упражнение и ничего более.