c# - 处理 IScheduler.Scheduler 结果
问题描述
我想自动处理 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;
}
解决方案
推荐阅读
- reactjs - 如何使用反应钩子仅展开和折叠手风琴中的第一项?
- maven - 如何配置 Maven 以仅在部署时执行测试
- c# - 尝试将 Task.WhenAll 与 Task 一起使用
不工作 - python-3.x - 如何在没有计算机的情况下预测输出?
- javascript - 如何将 openzeppelin 升级模块集成到松露项目中,具体如何“链接”?
- python - Django 1.11:为经过身份验证的用户禁用缓存
- java - 我该如何存储
> 在 Java 中? - python - 在单独的csv行中写入json数据
- graphql - GraphQL 类型的列表是否应该总是分页?
- php - Laravel:更新表单保持当前图像而不输入新图像不起作用