title: Pass reference of object to a new Thread
body: <p>I have an object that contains a very large 3D-array of doubles and I need to start a new thread that need the data of this array, so I will either need to start a new thread passing the object (which contains a whole lot of other data too) to the new thread or I just pass the 3D-array to the new thread.
  For the first solution I would simply do the following:</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>My question now: As I pass the object <code>_newObject</code> to the new thread, is that object sent to the thread by reference or is the object copied and the copy used by the new thread? The problem is that the object contains data of around 300MB and it would be almost impossible if copies are used since I need to start around 10 threads that need to use data of that object.</p>