Dan*_*tle 13 c# system.reactive async-await
我想基于Reactive Extensions Observable引发的每个事件执行异步调用.我也试图让所有内容保持同步,因为我希望在处理下一个事件之前完成异步调用.
怎么会去做类似以下的事情呢?我说类似下面的代码不编译.
settingsChangedInMemory
.Subscribe(async _ => {
var settings = Extract();
await SaveSettings(settings);
});
Run Code Online (Sandbox Code Playgroud)
我不确定它是否会改变任何东西,但我需要订阅多个Observable.例如,像这样的另一个订阅.
settingsChangedOnDisk
.Subscribe(async _ => {
var settings = await ReadSettings(settings);
Apply(settings);
});
Run Code Online (Sandbox Code Playgroud)
您将如何使用Reactive Extensions执行此操作?
Ana*_*tts 18
怎么样:
settingsChangedInMemory
.SelectMany(async _ => await SaveSettings(Extract()))
.Subscribe(x => Apply(x));
Run Code Online (Sandbox Code Playgroud)
永远不要放在async一个Subscribe,你总是想把它放在一个SelectMany.
| 归档时间: |
|
| 查看次数: |
4661 次 |
| 最近记录: |