Thread safety when mutating an object - C#