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>();
}
완벽하지만 시작에 스케줄러를 추가 할 수 있습니다. –