TakeUntil没有记录的工作?

时间:2016-02-15 19:54:11

标签: c# .net system.reactive

来自here(强调我的):

  

TakeUntil订阅并开始镜像源Observable。它还监视您提供的第二个Observable。如果第二个Observable发出项目或发送终止通知,则TakeUntil返回的Observable将停止镜像源Observable 并终止

如果这是真的,那为什么阻止?:

var oauth_consumer_key = "******************************";
var oauth_consumer_secret = "**************************************";
var service = new TwitterService(oauth_consumer_key, oauth_consumer_secret);

OAuthRequestToken requestToken = service.GetRequestToken();
string authUrl = service.GetAuthorizationUri(requestToken).ToString();
Process.Start(authUrl); 

1 个答案:

答案 0 :(得分:1)

Preston Guillot在评论部分就读了。

Observable.TakeUntilclass O,特别是Observable代表"终止符" parent.OnCompleted。我们可以看到O.OnNextO.OnError发送Observable.Empty通知。

因此,代码阻止的原因是OnCompleted(充当&#34;终结符&#34;)仅发出puts "Enter 20 numbers" numbers = Array.new while numbers.length <= 20 numbers << gets.chomp end puts "You have entered 20 numbers" h = Hash.new h["even"] = numbers.select {|x| x.even? && x > 0}.count h["odd"] = numbers.select {|x| x.odd? && x > 0}.count h["positive"] = numbers.select {|x| x > 0}.count h["negative"] = numbers.select {|x| x < 0}.count puts h 通知。