using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DTLib.Reactive { public abstract class ReactiveWorker { List> Streams = new(); SafeMutex StreamCollectionAccess = new(); public void Join(ReactiveStream stream) => StreamCollectionAccess.Execute(()=>Streams.Add(stream)); public void Leave(ReactiveStream stream) => StreamCollectionAccess.Execute(() => Streams.Remove(stream)); } }