C# 如何识别可重定额代码?代码重新排序问题(.NET)

C# 如何识别可重定额代码?代码重新排序问题(.NET),c#,.net,C#,.net,声明: 处理器可以自由重新排序此代码 我担心任何代码是否会被重新排序,我知道如何识别可重新排序的代码。特别是关于我的这段代码: Processing.Add(ItemNumber, null); AsyncTask.Begin(InternalRequestCallback, Remove, ItemNumber); 它必须按指定的顺序进行,否则将失败。我应该放一根线吗;在这些陈述之间?简短版本:否 代码只需执行两次调用;运行时保证这些方法将按顺序执行(至少在单个线程上) 本文的复杂性集中在2

声明:

处理器可以自由重新排序此代码

我担心任何代码是否会被重新排序,我知道如何识别可重新排序的代码。特别是关于我的这段代码:

Processing.Add(ItemNumber, null);
AsyncTask.Begin(InternalRequestCallback, Remove, ItemNumber);
它必须按指定的顺序进行,否则将失败。我应该放一根线吗;在这些陈述之间?

简短版本:否

代码只需执行两次调用;运行时保证这些方法将按顺序执行(至少在单个线程上)

本文的复杂性集中在2线程访问共享状态的复杂性上(您需要
ThreadB
方法才能使示例有意义)。我敢肯定,您粘贴的代码是不可重新排序的,因为这是同一线程上的连续指令(依赖于相关数据)


你需要比我理解的更深入地了解全部细节。但是,除非您正在使用无锁线程编程进行一些复杂的工作,否则这不太可能会影响您。

如果您担心代码的重新排序,那么您可能正在创建一些时髦、难以理解和维护的代码,或者您可能不必担心它。你能解释一下为什么你认为你提供的代码片段会被重新排序吗?
Processing.Add(ItemNumber, null);
AsyncTask.Begin(InternalRequestCallback, Remove, ItemNumber);