【发布时间】:2018-11-26 23:34:33
【问题描述】:
以下不会捕获发出的值:
someObservable = Observable.FromEventPattern(this, "MyEvent");
FireMyEvent("foo");
await someObservable.FirstOrDefaultAsync(e => e.Args == "foo");
所以我在单元测试中遇到了这种模式:
var tsc = new TaskCompletionSource<bool>();
var callback = someObservable.FirstOrDefaultAsync(...);
using (callback.Subscribe(e => tsc.SetResult(e.Args)))
{
FireMyEvent("foo");
tsc.Task.Wait(1000);
}
Assert.AreEqual("foo", tsc.Task.Result);
基本上我需要订阅,然后触发操作,然后等待订阅的 observable。
是否可以在不引入新任务或 WaitHandle 的情况下简化此订阅/等待?
【问题讨论】:
标签: c# system.reactive