Description
Describe the bug 🐞
Upgrading from 3.1.7 to 4.0.9, in an app running AvaloniaUI 11.0.10 undesirable new behavior is shown. An ObjectDisposedException is thrown, although apparently caught/ignored/hidden higher up in the call stack, this is still undesirable and constitutes a code smell. Exceptions that can be avoided should be avoided.
Step to reproduce
I don't have a minimum reproduceable sample unfortunately, and the app in question is not open source. Hopefully somebody who knows what has changed and examining the call stack below will recognize the root cause. The change in behavior occurs with no other change than upgrading from 3.1.7 to 4.0.9, and has been re-confirmed by downgrading (no issue) and upgrading again (new behavior is back).
Reproduction repository
No response
Expected behavior
In normal usage, exceptions should not be thrown, and specifically not ObjectDisposedException. Notable also is that it's a changed behavior from 3.1.7 to 4.0.9 .
Full call stack follows:
System.Reactive.dll!System.Reactive.Subjects.ReplaySubject<ReactiveUI.Validation.States.IValidationState>.ReplayBase.CheckDisposed() Line 424 C#
System.Reactive.dll!System.Reactive.Subjects.ReplaySubject<ReactiveUI.Validation.States.IValidationState>.ReplayBase.Subscribe(System.IObserver<ReactiveUI.Validation.States.IValidationState> observer) Line 373 C#
System.Reactive.dll!System.Reactive.Subjects.ReplaySubject<ReactiveUI.Validation.States.IValidationState>.Subscribe(System.IObserver<ReactiveUI.Validation.States.IValidationState> observer) Line 200 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<ReactiveUI.Validation.States.IValidationState>(System.IObservable<ReactiveUI.Validation.States.IValidationState> source, System.IObserver<ReactiveUI.Validation.States.IValidationState> observer) Line 395 C#
System.Reactive.dll!System.Reactive.Subjects.ConnectableObservable<ReactiveUI.Validation.States.IValidationState, ReactiveUI.Validation.States.IValidationState>.Subscribe(System.IObserver<ReactiveUI.Validation.States.IValidationState> observer) Line 90 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<ReactiveUI.Validation.States.IValidationState>(System.IObservable<ReactiveUI.Validation.States.IValidationState> source, System.IObserver<ReactiveUI.Validation.States.IValidationState> observer) Line 395 C#
System.Reactive.dll!System.Reactive.Sink<ReactiveUI.Validation.States.IValidationState, ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Run(System.IObservable<ReactiveUI.Validation.States.IValidationState> source) Line 89 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Select<ReactiveUI.Validation.States.IValidationState, ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Selector.Run(System.Reactive.Linq.ObservableImpl.Select<ReactiveUI.Validation.States.IValidationState, ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Selector._ sink) Line 22 C#
System.Reactive.dll!System.Reactive.Producer<ReactiveUI.Validation.Components.Abstractions.IValidationComponent, System.Reactive.Linq.ObservableImpl.Select<ReactiveUI.Validation.States.IValidationState, ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Selector._>.SubscribeRaw(System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer, bool enableSafeguard) Line 128 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> source, System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer) Line 388 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Merge<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Observables._.OnNext(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 181 C#
System.Reactive.dll!System.Reactive.Sink<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._.LoopRec(System.Reactive.Concurrency.IScheduler scheduler) Line 122 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._.Run.AnonymousMethod__3_0(System.Reactive.Concurrency.IScheduler innerScheduler, System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._ this) Line 55 C#
System.Reactive.dll!System.Reactive.Concurrency.ImmediateScheduler.Schedule<System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._>(System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._ state, System.Func<System.Reactive.Concurrency.IScheduler, System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._, System.IDisposable> action) Line 41 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._.Run(System.Collections.Generic.IEnumerable<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> source, System.Reactive.Concurrency.IScheduler scheduler) Line 56 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.Run(System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._ sink) Line 24 C#
System.Reactive.dll!System.Reactive.Producer<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>, System.Reactive.Linq.ObservableImpl.ToObservableRecursive<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._>.SubscribeRaw(System.IObserver<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> observer, bool enableSafeguard) Line 128 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>(System.IObservable<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> source, System.IObserver<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> observer) Line 388 C#
System.Reactive.dll!System.Reactive.Sink<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>, ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Run(System.IObservable<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> source) Line 89 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Merge<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Observables.Run(System.Reactive.Linq.ObservableImpl.Merge<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Observables._ sink) Line 163 C#
System.Reactive.dll!System.Reactive.Producer<ReactiveUI.Validation.Components.Abstractions.IValidationComponent, System.Reactive.Linq.ObservableImpl.Merge<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Observables._>.SubscribeRaw(System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer, bool enableSafeguard) Line 128 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> source, System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer) Line 388 C#
System.Reactive.dll!System.Reactive.TailRecursiveSink<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Drain() Line 128 C#
System.Reactive.dll!System.Reactive.TailRecursiveSink<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Run(System.Collections.Generic.IEnumerable<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> sources) Line 35 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Concat<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Run(System.Reactive.Linq.ObservableImpl.Concat<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>._ sink) Line 20 C#
System.Reactive.dll!System.Reactive.Producer<ReactiveUI.Validation.Components.Abstractions.IValidationComponent, System.Reactive.Linq.ObservableImpl.Concat<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>._>.SubscribeRaw(System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer, bool enableSafeguard) Line 128 C#
System.Reactive.dll!System.ObservableExtensions.SubscribeSafe<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> source, System.IObserver<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> observer) Line 388 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Switch<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>._.OnNext(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 59 C#
System.Reactive.dll!System.Reactive.Sink<System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Select<System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>, System.IObservable<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.Selector._.OnNext(System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 48 C#
System.Reactive.dll!System.Reactive.Sink<System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Select<System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>, System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.Selector._.OnNext(System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 48 C#
System.Reactive.dll!System.Reactive.AutoDetachObserver<System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNextCore(System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 62 C#
System.Reactive.dll!System.Reactive.ObserverBase<System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(System.Collections.Generic.IReadOnlyCollection<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 36 C#
DynamicData.dll!DynamicData.List.Internal.QueryWhenChanged<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.Run.AnonymousMethod__1(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> changes) Line 24 C#
System.Reactive.dll!System.Reactive.AnonymousObserver<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNextCore(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 67 C#
System.Reactive.dll!System.Reactive.ObserverBase<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 36 C#
System.Reactive.dll!System.Reactive.AutoDetachObserver<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNextCore(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 62 C#
System.Reactive.dll!System.Reactive.ObserverBase<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 36 C#
System.Reactive.dll!System.Reactive.Sink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.IdentitySink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 16 C#
System.Reactive.dll!System.Reactive.Subjects.Subject<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 149 C#
DynamicData.dll!DynamicData.SourceList<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>.InvokeNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> changes) Line 166 C#
System.Reactive.dll!System.Reactive.AnonymousSafeObserver<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 44 C#
System.Reactive.dll!System.Reactive.Sink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.Linq.ObservableImpl.Select<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>, DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.Selector._.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 48 C#
System.Reactive.dll!System.Reactive.Sink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.IdentitySink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 16 C#
System.Reactive.dll!System.Reactive.Sink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.Concurrency.Synchronize<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>._.OnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 42 C#
System.Reactive.dll!System.Reactive.Sink<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.ForwardOnNext(DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent> value) Line 50 C#
System.Reactive.dll!System.Reactive.ObserveOnObserverNew<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.DrainStep(System.Collections.Concurrent.ConcurrentQueue<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> q) Line 562 C#
System.Reactive.dll!System.Reactive.ObserveOnObserverNew<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>.DrainShortRunning(System.Reactive.Concurrency.IScheduler recursiveScheduler) Line 509 C#
System.Reactive.dll!System.Reactive.ObserveOnObserverNew<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>..cctor.AnonymousMethod__17_0(System.Reactive.Concurrency.IScheduler scheduler, System.Reactive.ObserveOnObserverNew<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>> self) Line 497 C#
System.Reactive.dll!System.Reactive.Concurrency.ScheduledItem<System.TimeSpan, System.Reactive.ObserveOnObserverNew<DynamicData.IChangeSet<ReactiveUI.Validation.Components.Abstractions.IValidationComponent>>>.InvokeCore() Line 207 C#
System.Reactive.dll!System.Reactive.Concurrency.ScheduledItem<System.TimeSpan>.Invoke() Line 45 C#
System.Reactive.dll!System.Reactive.Concurrency.CurrentThreadScheduler.Trampoline.Run(System.Reactive.Concurrency.SchedulerQueue<System.TimeSpan> queue) Line 151 C#
System.Reactive.dll!System.Reactive.Concurrency.CurrentThreadScheduler.Schedule<(System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._))>((System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)) state, System.TimeSpan dueTime, System.Func<System.Reactive.Concurrency.IScheduler, (System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)), System.IDisposable> action) Line 115 C#
System.Reactive.dll!System.Reactive.Concurrency.LocalScheduler.Schedule<(System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._))>((System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)) state, System.Func<System.Reactive.Concurrency.IScheduler, (System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)), System.IDisposable> action) Line 32 C#
System.Reactive.dll!System.Reactive.Concurrency.Scheduler.ScheduleAction<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)>(System.Reactive.Concurrency.IScheduler scheduler, (System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._) state, System.Action<(System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._)> action) Line 61 C#
System.Reactive.dll!System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>.SubscribeRaw(System.IObserver<System.Reactive.Unit> observer, bool enableSafeguard) Line 128 C#
System.Reactive.dll!System.Reactive.Producer<System.Reactive.Unit, System.Reactive.Linq.ObservableImpl.Catch<System.Reactive.Unit>._>.Subscribe(System.IObserver<System.Reactive.Unit> observer) Line 97 C#
System.Reactive.dll!System.ObservableExtensions.Subscribe<System.Reactive.Unit>(System.IObservable<System.Reactive.Unit> source) Line 37 C#
ReactiveUI.dll!ReactiveUI.ReactiveCommandBase<System.Reactive.Unit, System.Reactive.Unit>.ICommandExecute(object parameter) Line 172 C#
ReactiveUI.dll!ReactiveUI.ReactiveCommandBase<System.Reactive.Unit, System.Reactive.Unit>.System.Windows.Input.ICommand.Execute(object parameter) Line 111 C#
Avalonia.Controls.dll!Avalonia.Controls.Button.OnClick() Line 349 C#
Avalonia.Controls.dll!Avalonia.Controls.Button.OnPointerReleased(Avalonia.Input.PointerReleasedEventArgs e) Line 419 C#
Avalonia.Base.dll!Avalonia.Input.InputElement..cctor.AnonymousMethod__32_9(Avalonia.Input.InputElement x, Avalonia.Input.PointerReleasedEventArgs e) Line 225 C#
Avalonia.Base.dll!Avalonia.Interactivity.RoutedEvent<Avalonia.Input.PointerReleasedEventArgs>.AddClassHandler.__Adapter|0(object sender, Avalonia.Interactivity.RoutedEventArgs e) Line 127 C#
Avalonia.Base.dll!Avalonia.Interactivity.RoutedEvent.AddClassHandler.AnonymousMethod__0((object, Avalonia.Interactivity.RoutedEventArgs) args) Line 94 C#
Avalonia.Base.dll!Avalonia.Reactive.AnonymousObserver<(object, Avalonia.Interactivity.RoutedEventArgs)>.OnNext((object, Avalonia.Interactivity.RoutedEventArgs) value) Line 66 C#
Avalonia.Base.dll!Avalonia.Reactive.LightweightObservableBase<(object, Avalonia.Interactivity.RoutedEventArgs)>.PublishNext((object, Avalonia.Interactivity.RoutedEventArgs) value) Line 145 C#
Avalonia.Base.dll!Avalonia.Reactive.LightweightSubject<(object, Avalonia.Interactivity.RoutedEventArgs)>.OnNext((object, Avalonia.Interactivity.RoutedEventArgs) value) Line 25 C#
Avalonia.Base.dll!Avalonia.Interactivity.RoutedEvent.InvokeRaised(object sender, Avalonia.Interactivity.RoutedEventArgs e) Line 100 C#
Avalonia.Base.dll!Avalonia.Interactivity.EventRoute.RaiseEventImpl(Avalonia.Interactivity.RoutedEventArgs e) Line 144 C#
Avalonia.Base.dll!Avalonia.Interactivity.EventRoute.RaiseEvent(Avalonia.Interactivity.Interactive source, Avalonia.Interactivity.RoutedEventArgs e) Line 102 C#
Avalonia.Base.dll!Avalonia.Interactivity.Interactive.RaiseEvent(Avalonia.Interactivity.RoutedEventArgs e) Line 126 C#
Avalonia.Base.dll!Avalonia.Input.MouseDevice.MouseUp(Avalonia.Input.IMouseDevice device, ulong timestamp, Avalonia.Input.IInputRoot root, Avalonia.Point p, Avalonia.Input.PointerPointProperties props, Avalonia.Input.KeyModifiers inputModifiers, Avalonia.Input.IInputElement hitTest) Line 201 C#
Avalonia.Base.dll!Avalonia.Input.MouseDevice.ProcessRawEvent(Avalonia.Input.Raw.RawPointerEventArgs e) Line 90 C#
Avalonia.Base.dll!Avalonia.Input.MouseDevice.ProcessRawEvent(Avalonia.Input.Raw.RawInputEventArgs e) Line 38 C#
Avalonia.Base.dll!Avalonia.Input.InputManager.ProcessInput(Avalonia.Input.Raw.RawInputEventArgs e) Line 36 C#
Avalonia.Controls.dll!Avalonia.Controls.TopLevel.HandleInput(Avalonia.Input.Raw.RawInputEventArgs e) Line 753 C#
Avalonia.Win32.dll!Avalonia.Win32.WindowImpl.AppWndProc(nint hWnd, uint msg, nint wParam, nint lParam) Line 754 C#
Avalonia.Win32.dll!Avalonia.Win32.WindowImpl.WndProc(nint hWnd, uint msg, nint wParam, nint lParam) Line 23 C#
[External Code]
Avalonia.Win32.dll!Avalonia.Win32.Win32DispatcherImpl.RunLoop(System.Threading.CancellationToken cancellationToken) Line 111 C#
Avalonia.Base.dll!Avalonia.Threading.DispatcherFrame.Run(Avalonia.Threading.IControlledDispatcherImpl impl) Line 122 C#
Avalonia.Base.dll!Avalonia.Threading.Dispatcher.PushFrame(Avalonia.Threading.DispatcherFrame frame) Line 53 C#
Avalonia.Base.dll!Avalonia.Threading.Dispatcher.MainLoop(System.Threading.CancellationToken cancellationToken) Line 81 C#
Avalonia.Controls.dll!Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(string[] args) Line 131 C#
Avalonia.Controls.dll!Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(Avalonia.AppBuilder builder, string[] args, System.Action<Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime> lifetimeBuilder) Line 258 C#
XecretsEz.dll!Xecrets.Ez.Program.AsyncMain(string[] args) Line 92 C#
XecretsEz.dll!Xecrets.Ez.Program.Main(string[] args) Line 60 C#
Screenshots 🖼️
No response
IDE
Visual Studio 2022
Operating system
Windows
Version
No response
Device
PC
ReactiveUI Version
4.0.9
Additional information ℹ️
No response