This will be called before any access to the data or size, unless SetIsMaterialized is called by the constructor. Accesses from multiple threads will cause multiple calls to this function until at least one has finished.