double の非常に大きな 3D 配列を含むオブジェクトがあり、この配列のデータを必要とする新しいスレッドを開始する必要があるため、オブジェクトを渡す新しいスレッドを開始する必要があります他のデータも) 新しいスレッドに渡すか、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 のスレッドを開始する必要があるため、コピーを使用する場合はほとんど不可能です。