Passar referência de objeto para um novo Thread

Eu tenho um objeto que contém uma matriz 3D muito grande de duplas e eu preciso iniciar um novo segmento que precisa dos dados dessa matriz, então eu vou precisar iniciar um novo segmento passando o objeto (que contém um monte de outros dados também) para o novo thread ou apenas passo o array 3D para o novo thread. Para a primeira solução, eu simplesmente faria o seguinte:

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

Minha pergunta agora: Como eu passo o objeto_newObject para o novo segmento, esse objeto é enviado para o segmento por referência ou é o objeto copiado e a cópia usada pelo novo segmento? O problema é que o objeto contém dados de cerca de 300MB e seria quase impossível se as cópias fossem usadas, já que eu preciso começar com 10 threads que precisam usar dados desse objeto.

questionAnswers(4)

yourAnswerToTheQuestion