即使在线程外定义了该方法,还是将其并行运行?除了种族状况之外,这还会有任何副作用吗?
SomeClass a = new SomeClass()
ThreadStart childref = new ThreadStart(() =>
{
a.mass = a.CalculateMass() // Lets say this takes a minute to calculate.
});
Thread childThread = new Thread(childref);
childThread.Start();
答案 0 :(得分:1)
它将在单独的线程中运行。
变量只是内存中仅受进程而不是线程限制的位置。因此,应用程序中的单独线程可以访问内存中的相同位置。
如果您不确保在任何时候只有一个线程访问它,那么除了竞争条件之外,没有其他副作用。