0
我有一個類(我無法控制),它有一個長時間運行的同步函數返回T.我想通過將其更改爲IObservable來實現此異步當函數正在運行,然後OnNext(T) - > OnCompleted()時什麼都不會。實現這個最簡單的方法是什麼?如何將一個同步功能<T>轉換爲IObservable <T>
class Foo
{
bool TakesAWhile();
}
class FooWrapper
{
Foo foo;
IObservable<bool> TakesAWhile()
{
// What goes here?
}
}
以下的工作,但我懷疑我缺少更好的東西。
public IObservable<bool> TakesAWhile()
{
var s = new Subject<bool>();
var worker = new BackgroundWorker();
worker.DoWork += (sender, e) =>
{
s.OnNext(foo.TakesAWhile());
s.OnCompleted();
};
worker.RunWorkerAsync();
return s.AsObservable<bool>();
}
完美,調度添加到開始雖然。 – 2012-02-24 06:44:35