Repository navigation
v2.4.38
Replace lock(_lock) with Monitor.TryEnter to prevent UI freezes when background threads call Invalidate() while the render thread holds the lock. If the lock is contended, the targeted node invalidation is skipped but _invalidated and IsDirty flags are still set, so the render loop does a full layout rebuild on the next frame.