我想在新線程上安排一個observable,並在當前線程上得到結果。觀察回當前線程
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Log("init");
Observable.Return(0)
.ObserveOn(NewThreadScheduler.Default)
.Do(_ => Log("Do1 method"))
.ObserveOn(CurrentThreadScheduler.Instance)
.Do(_ => Log("Do2 method"))
.Subscribe(_ => Log("subscribe method"));
Console.ReadKey();
}
static void Log(string label)
{
Console.WriteLine("{0} on {1}", label, Thread.CurrentThread.ManagedThreadId);
}
}
}
這是結果我得到:
init on 9
Do1 method on 10
Do2 method on 10
subscribe method on 10
爲什麼DO2方法和訂閱方法上線#10,而不是9號?我期待這樣的結果:
init on 9
Do1 method on 10
Do2 method on 9
subscribe method on 9
感謝的事件循環行事很多!我的應用程序工作正常,但我沒有在控制檯項目中重現它。 – goodfriend0