1
This MSDN article指出:如何识别可重新编码的代码?代码重新排序问题(.NET)
处理器可以自由地重新安排该代码
internal static volatile int s_x = 0;
internal static volatile int s_y = 0;
internal static volatile int s_ya = 0;
void ThreadA() {
s_x = 1;
s_ya = s_y;
}
我很担心,如果任何代码可以重新排序,我知道如何确定可重新编码的代码。特别是关于这段代码:
Processing.Add(ItemNumber, null);
AsyncTask.Begin(InternalRequestCallback, Remove, ItemNumber);
它必须以指定的顺序发生,否则失败。我应该把一个Thread.MemoryBarrier();这些陈述之间?
如果您担心代码重新排序,您要么创建一些时髦,难以理解和维护代码,否则您可能不需要担心它。你能解释为什么你认为你提供的代码片段会被重新排序吗? – 2009-01-15 13:28:03