我有一个包含双打的一个非常大的三维数组的对象,我需要开始一个新的线程需要这个阵列的数据,所以我要么需要启动一个新线程传递对象(其中包含了一大堆其他数据太)给新线程或I只是在3D阵列传递给新的线程。 对于第一个解决方案,我只想做到以下几点:
MyClass
{
...
public double[,,] _data = new double[x,y,z];
...
}
MyMethod(object MyObject)
{
//do stuff with (MyObject as MyClass)
}
MyClass _newObject = new MyClass();
Thread thread = new Thread(new ParameterizedThreadStart(MyMethod));
thread.Start(_newObject);
我现在的问题:当我通过对象_newObject
到新的线程,则该对象引用发送到线程或者被新的线程使用复制的对象和复制? 问题是,对象包含大约300MB的数据,这将是几乎是不可能的,如果拷贝被使用,因为我要开始围绕10个线程需要使用该对象的数据。