Я хочу автоматически удалить подписку RxApp.MainThreadScheduler.Schedule.Я создаю CompositeDisposable одноразовые и избавляюсь от него в методе Schedule (см. Код ниже).Это лучшая практика или может вызвать утечки памяти или блокировать сбор GC?
private async Task RunAndWaitInMainThread(Action action)
{
AsyncSubject<Unit> waiter = new AsyncSubject<Unit>();
CompositeDisposable disposable = new CompositeDisposable();
RxApp.MainThreadScheduler.Schedule(() =>
{
action();
waiter.OnNext(Unit.Default);
waiter.OnCompleted();
disposable.Clear(); // dispose subscription
})
.DisposeWith(disposable);
await waiter;
}