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

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