Skip to content

[Bug]: LinqExtensions are sometimes missing equivalent methods from System.Reactive in version 24 #167

Description

@CyLuGh

Describe the bug 🐞

I'm working on upgrading a project towards version 24 and I thought it could be useful to provide some feedback on the differences I've found.

  • CombineLatest in LinqExtensions is missing the override where it would simply return the resulting tuple from all the observables
  • [Edit: seems like the IDE was wrongly flagging that] Interactions Handle method isn't awaitable
  • I've noticed some crashes when using ObserveOn(RxSchedulers.MainThreadScheduler) :

Works with System.Reactive

 Observable
            .FromEventPattern<EventHandler<SKPaintSurfaceEventArgs>, SKPaintSurfaceEventArgs>(
                _ => async (_, args) => await SkiaElement_PaintSurface(args, viewModel),
                handler => view.SkiaElement.PaintSurface += handler,
                handler => view.SkiaElement.PaintSurface -= handler
            )
            .ObserveOn(RxSchedulers.MainThreadScheduler)
            .Subscribe()
            .DisposeWith(disposables);

Skia crashes as it can't access the canvas for some reason when using ISequencer. It works if I remove the ObserveOn method.

Signal
    .FromEventPattern<SKPaintSurfaceEventArgs>(
        handler => view.SkiaElement.PaintSurface += handler,
        handler => view.SkiaElement.PaintSurface -= handler
    )
    .ObserveOn(RxSchedulers.MainThreadScheduler)
    .Subscribe(t =>
    {
        var args = t.EventArgs;
        SkiaElement_PaintSurface(args, viewModel);
    })
    .DisposeWith(disposables);

Step to reproduce

Switch to version 24 and use ISequencer MainThreadScheduler instead of IScheduler MainThreadScheduler

No response

ReactiveUI Version

24.1

Additional information ℹ️

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions