/// <summary> /// Fires 'positions changed starting inside this element' event on the main thread context /// </summary> /// <param name="element">Element</param> internal void FireOnPositionsOnlyChanged() { Check.InvalidOperation(() => Thread.CurrentThread.ManagedThreadId == _ownerThread, _threadCheckMessage); try { PositionsOnlyChanged?.Invoke(this, new TreePositionsOnlyChangedEventArgs()); } catch (Exception ex) { Debug.Assert(false, Invariant($"Exception thrown in a tree.PositionsOnlyChanged event handler: {ex.Message}")); } }
/// <summary> /// Fires 'positions changed starting inside this element' event on the main thread context /// </summary> /// <param name="element">Element</param> internal void FireOnPositionsOnlyChanged() { if (_ownerThread != Thread.CurrentThread.ManagedThreadId) { Debug.Fail(_threadContextInvalidMessage); return; } try { PositionsOnlyChanged?.Invoke(this, new TreePositionsOnlyChangedEventArgs()); } catch (Exception ex) { Debug.Assert(false, Invariant($"Exception thrown in a tree.PositionsOnlyChanged event handler: {ex.Message}")); } }