Geradores de barreira de memória

Leitura Tutorial de threading de Joseph Albahari, os seguintes são mencionados como geradores de barreiras de memória:

C # 'lock declaração Monitor.Enter/Monitor.Exit)odos os métodos noInterlocked class Retornos de chamada assíncronos que usam o conjunto de encadeamentos - incluem delegados assíncronos, retornos de chamada APM e continuação de tarefasConfigurando e aguardando uma construção de sinalização Qualquer coisa que dependa de sinalização, como iniciar ou aguardar uma tarefa

Além disso, Hans Passant e Brian Gideonadicionou o seguinte (supondo que nenhuma delas já se encaixe em uma das categorias anteriores):

Iniciando ou ativando um threadMudança de contextThread.Sleep()

Eu estava pensando se essa lista estava completa (se uma lista completa poderia mesmo ser feita praticamente)

EDITA adições sugeridas:

Volátil (a leitura implica uma cerca de aquisição, a escrita implica uma cerca de liberação)

questionAnswers(3)

yourAnswerToTheQuestion