есть много контекста, отсутствующего в коде, но я просто хотел бы добавить мои 2 копейки к вышесказанному, с чем я согласен.
в пункте 2 Рэнди, я бы просто использовал оператор блокировки, а не барьер памяти, это рекомендуемый MSDN подход, если вы не используете несколько процессоров Itanium на своих компьютерах (со слабым упорядочением памяти)
http://msdn.microsoft.com/en-us/library/system.threading.thread.memorybarrier.aspx
я полностью согласен с пунктом 6. публичный способ выставления ссылки на элемент в очереди заданий? это не может быть хорошо, не так ли? Особенно, когда вы обсуждаете безопасность потоков, если вам нужна информация из этого класса, доступная внешнему миру, сделайте ее неизменной и покажите ее. Намного лучше инкапсуляция.