来自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);
答案 0 :(得分:1)
Preston Guillot在评论部分就读了。
让Observable.TakeUntil
为class O
,特别是Observable
代表"终止符" parent.OnCompleted
。我们可以看到O.OnNext
和O.OnError
发送Observable.Empty
通知。
因此,代码阻止的原因是OnCompleted
(充当"终结符")仅发出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
通知。