来自线程外部定义的对象的线程中的方法调用是否会运行线程?

时间:2018-11-17 00:51:11

标签: c# multithreading

即使在线程外定义了该方法,还是将其并行运行?除了种族状况之外,这还会有任何副作用吗?

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();

1 个答案:

答案 0 :(得分:1)

它将在单独的线程中运行。

变量只是内存中仅受进程而不是线程限制的位置。因此,应用程序中的单独线程可以访问内存中的相同位置。

如果您不确保在任何时候只有一个线程访问它,那么除了竞争条件之外,没有其他副作用。