title: Can Interlocked class safely be mixed with lock()?
body: <p>Is an atomic read guaranteed when you mix Interlocked operations with lock() (and other higher-level locks)?</p>
  
  <p>I am interested in general behaviour when mixing locking mechanisms like this, and any differences between Int32 and Int64.</p>
  
  <pre><code>private Int64 count;
  private object _myLock;
  
  public Int64 Count 
  {
    get 
    {
      lock(_myLock)
      {
        return count;
      }
    }
  }
  
  public void Increment
  {
    Interlocked.Increment(ref count);
  }
  </code></pre>