dotnet / dotnet/reactive

Is there an equivalent of RxAsync.NET's ConcurrentSimpleAsyncSubject for Rx.NET?

Open
#1,458 0 comments 0 reactions 0 assignees View on GitHub
[area] Rx
Dominant language
C#
Stars
7.2k
Forks
798
PR merge metrics
No merged PRs in 30d

Description

Hello,

I'm basically looking to OnNext and have the following happen:
- OnNext to all observers concurrently
- wait until all observers have finished processing (a mix of transforming then writing to db, directly writing to db, network IO, etc..) the data passed before calling OnNext again

Though I haven't tested it, upon looking through the source this seems to be what ConcurrentSimpleAsyncSubject is doing, but with the IAsyncObservable and IAsyncObserver interfaces.

I can't find an equivalent for IObservable/IObserver that's included in Rx.NET, but I think it should be possible to implement a version of this that blocks the calling thread until all downstream observers (each on their own thread) have completed. The only problem here would be that it might cause some trouble depending on the scheduling since it'll have to block threads (I assume this might be why no such subject exists in this repository).

Is there some solution to this that I'm missing or will I have to either implement this myself (with the aforementioned caveats in mind) or use RxAsync.NET (or something like TPL, where I would be missing a ton of functionality I want from the Rx operators)?

If I were to use RxAsync.NET, how close to being production ready is it? Does it have feature parity with Rx.NET? Are there breaking changes planned? How buggy is it?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.