<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bnaya Eshet : Delay</title><link>http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Delay/default.aspx</link><description>Tags: Delay</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Rx and Time related operators</title><link>http://blogs.microsoft.co.il/blogs/bnaya/archive/2012/02/14/rx-and-time-related-operators.aspx</link><pubDate>Tue, 14 Feb 2012 13:07:26 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1013385</guid><dc:creator>bnaya</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;Rx and Time related operators&lt;/h2&gt;  &lt;p&gt;this post will focus on &lt;strong&gt;Rx&lt;/strong&gt;&amp;#39;s time related operators.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/IMG_0725_2568_small_35E54EC0.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Rx, Reactive, IObservable, IObserver, Delay,  Timeout, Timestamp, TimeInterval,  Generate, Interval, Timer " border="0" alt="Rx, Reactive, IObservable, IObserver, Delay,  Timeout, Timestamp, TimeInterval,  Generate, Interval, Timer " src="http://blogs.microsoft.co.il/blogs/bnaya/IMG_0725_2568_small_thumb_04966460.jpg" width="336" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rx&lt;/strong&gt; has lot to do with the time notion.&lt;/p&gt;  &lt;p&gt;actually &lt;strong&gt;Rx&lt;/strong&gt; is kind of a time machine where datum does &lt;strong&gt;schedule&lt;/strong&gt; for processing at specific time     &lt;br /&gt;(I will talk about scheduling in future post).&lt;/p&gt;  &lt;p&gt;within the &lt;strong&gt;System.Reactive&lt;/strong&gt; and &lt;strong&gt;System.Reactive.Linq &lt;/strong&gt;namespaces we can find the following extension method and services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Window&lt;/strong&gt;, &lt;strong&gt;Buffer&lt;/strong&gt; and &lt;strong&gt;Sample&lt;/strong&gt; which was spoken &lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/archive/2011/12/31/rx-window.aspx" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/archive/2011/12/22/rx-buffer.aspx" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/archive/2012/01/05/rx-sample.aspx" target="_blank"&gt;here&lt;/a&gt;. all operators has a &lt;strong&gt;time based overloads&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Replay&lt;/strong&gt; and &lt;strong&gt;Scheduler&lt;/strong&gt; which I will discuss on future posts.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Delay&lt;/strong&gt;,&amp;#160; &lt;strong&gt;Timeout&lt;/strong&gt;, &lt;strong&gt;Timestamp&lt;/strong&gt;, &lt;strong&gt;TimeInterval&lt;/strong&gt;,&amp;#160; &lt;strong&gt;Generate&lt;/strong&gt;, &lt;strong&gt;Interval&lt;/strong&gt; and &lt;strong&gt;Timer&lt;/strong&gt; which I will present soon.&lt;/p&gt;  &lt;p&gt;except of the above API you can find the time notion as &lt;strong&gt;overload&lt;/strong&gt; of &lt;strong&gt;many other&lt;/strong&gt; &lt;strong&gt;Rx API &lt;/strong&gt;(either explicitly or implicitly though the scheduler).&lt;/p&gt;  &lt;h5&gt;Interval and Timer&lt;/h5&gt;  &lt;p&gt;&lt;strong&gt;Rx&lt;/strong&gt; come with lot of &lt;strong&gt;factories&lt;/strong&gt; which can &lt;strong&gt;construct&lt;/strong&gt; different &lt;strong&gt;IObservable&amp;lt;T&amp;gt;&lt;/strong&gt; some of them produce a &lt;strong&gt;time-based stream&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;the &lt;strong&gt;Interval &lt;/strong&gt;factory construct a stream that produces a sequential value (long) after each period. &lt;/p&gt;  &lt;p&gt;the following snippet will produce a sequential value each second:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4af7efb0-5654-4143-a4ee-68f6bdae4938" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#2b91af;"&gt;IObservable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;long&lt;/span&gt;&amp;gt; source =&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Interval(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(1))&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;the &lt;strong&gt;Timer&lt;/strong&gt; factory is more fine tuning version of the &lt;strong&gt;Interval&lt;/strong&gt; factory, which can produce single value a due time or sequence of value which will start to produce sequential values per period that will start after a due time.&lt;/p&gt;  &lt;p&gt;the following snippet produce a single value after 1 minutes due time.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b9d47229-bc61-4ea6-b227-f68d209a3246" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#2b91af;"&gt;IObservable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;long&lt;/span&gt;&amp;gt; singleDueTime = &lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Timer(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromMinutes(1));&lt;/li&gt; &lt;li&gt;singleDueTime.Subscribe(item =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Elapsed once&amp;quot;&lt;/span&gt;));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;the following snippet will produce a sequential value stream per second after due time of 1 minutes.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:90bd2d18-3a1b-472c-a117-e073a2eee7d7" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#2b91af;"&gt;IObservable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;long&lt;/span&gt;&amp;gt; singleDueTime = &lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Timer(&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromMinutes(1),&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(1));&lt;/li&gt; &lt;li&gt;singleDueTime.Subscribe(item =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Elapsed&amp;quot;&lt;/span&gt;));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;Generate&lt;/h5&gt;  &lt;p&gt;more structured factory can be define by the Generate factory.&lt;/p&gt;  &lt;p&gt;the following snippet will produce a &lt;strong&gt;formatted string&lt;/strong&gt; of a &lt;strong&gt;sequential numeric&lt;/strong&gt; values in &lt;strong&gt;interval&lt;/strong&gt; that get more &lt;strong&gt;slower and slower&lt;/strong&gt;.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ba2d8cda-ba82-44c0-b1b9-15679d287691" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; xs = &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Generate(&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    0, &lt;span style="color:#008000;"&gt;// initial value&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; i &amp;lt; 10, &lt;span style="color:#008000;"&gt;// condition&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; i + 1, &lt;span style="color:#008000;"&gt;// iterate&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;** {0} **&amp;quot;&lt;/span&gt;, i), &lt;span style="color:#008000;"&gt;// selector&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(i)); &lt;span style="color:#008000;"&gt;// time selector&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;Timestamped&lt;/h5&gt;  &lt;p&gt;Records the timestamp for each value in an observable sequence. &lt;/p&gt;  &lt;p&gt;this is a very common task which we no longer have to reinvent the wheel for.&lt;/p&gt;  &lt;p&gt;the operator wrap the original value with a &lt;strong&gt;Timestamped&amp;lt;T&amp;gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;the following snippet stamp each of the value which produce by the Interval operator.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:053bf632-455d-4ef6-b51e-6304bb23a0ee" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#2b91af;"&gt;IObservable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Timestamped&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;long&lt;/span&gt;&amp;gt;&amp;gt; source =&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Interval(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(1))&lt;/li&gt; &lt;li&gt;    .Timestamp();&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;source.Subscribe(item =&amp;gt; &lt;/li&gt; &lt;li&gt;    &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Time = {0}, Value = {1}&amp;quot;&lt;/span&gt;,&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        item.Timestamp, item.Value));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;TimeInterval&lt;/h5&gt;  &lt;p&gt;the &lt;strong&gt;TimeInterval&lt;/strong&gt; operator records the time interval between consecutive values in an observable sequence.&lt;/p&gt;  &lt;p&gt;the following snippet is measuring the duration between the produced values.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0d589374-2384-447f-98e3-3caae97aee73" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; xs = &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Generate(&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    0, &lt;span style="color:#008000;"&gt;// initial value&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; i &amp;lt; 10, &lt;span style="color:#008000;"&gt;// condition&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; i + 1, &lt;span style="color:#008000;"&gt;// iterate&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;** {0} **&amp;quot;&lt;/span&gt;, i), &lt;span style="color:#008000;"&gt;// selector&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(i)); &lt;span style="color:#008000;"&gt;// time selector&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;xs.TimeInterval()&lt;/li&gt; &lt;li&gt;    .Subscribe(item =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Time = {0}, Value = {1}&amp;quot;&lt;/span&gt;,&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        item.Interval, item.Value));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;Timeout&lt;/h5&gt;  &lt;p&gt;the &lt;strong&gt;Timeout&lt;/strong&gt; operation either propagate the original value or produce an &lt;strong&gt;OnError&lt;/strong&gt; with &lt;strong&gt;TimeoutException&lt;/strong&gt; in case that the duration since the last value was &lt;strong&gt;overdue&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;the following snippet will produce values as long as the duration between value won&amp;#39;t pass the 4 second threshold.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0bfd8aac-e535-42de-8b6c-018412cb8a8a" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; xs = &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Generate(&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    0, &lt;span style="color:#008000;"&gt;// initial value&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; i &amp;lt; 10, &lt;span style="color:#008000;"&gt;// condition&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; i + 1, &lt;span style="color:#008000;"&gt;// iterate&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    i =&amp;gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;** {0} **&amp;quot;&lt;/span&gt;, i), &lt;span style="color:#008000;"&gt;// selector&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    i =&amp;gt; &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(i)); &lt;span style="color:#008000;"&gt;// time selector&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;xs.Timeout(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(4))&lt;/li&gt; &lt;li&gt;    .Subscribe(item =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(item), &lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    ex =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(ex));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;Delay&lt;/h5&gt;  &lt;p&gt;the Delay operator does create a &lt;strong&gt;delayed datum stream&lt;/strong&gt; which will delay the projection of the datum for specific duration.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/image_4ED0F938.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/bnaya/image_thumb_6BF6A142.png" width="381" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;the following snippet will delay the original stream before the value will reach the subscriber.    &lt;br /&gt;the value will be stamp twice, before and after the delay.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2965875e-ef3e-4081-9281-cc5d0597bb01" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#fff;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; source =&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Interval(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(1))&lt;/li&gt; &lt;li&gt;    .Timestamp();&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; delayed =&lt;/li&gt; &lt;li&gt;    source.Delay(&lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(1))&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        .Timestamp();&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;delayed.Subscribe(item =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#a31515;"&gt;&amp;quot;Datum {0}, Create on {1:ss} and propogate on {2:ss}&amp;quot;&lt;/span&gt;,&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    item.Value.Value, item.Value.Timestamp, item.Timestamp));&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;h5&gt;Summary&lt;/h5&gt;  &lt;p&gt;as I said &lt;strong&gt;Rx&lt;/strong&gt; is kind of a &lt;strong&gt;time machine&lt;/strong&gt;, there is other time related operator which I didn&amp;#39;t cover in this post.&lt;/p&gt;  &lt;p&gt;one of the &lt;strong&gt;core concept&lt;/strong&gt; of &lt;strong&gt;Rx&lt;/strong&gt; is the &lt;strong&gt;scheduler&lt;/strong&gt; which is capable for a very interesting &lt;strong&gt;time manipulation&lt;/strong&gt;, but this is a topic for future post.&lt;/p&gt;  &lt;p&gt;what I do want to mention on the scheduler issue is that many of the Rx operation is having an overloads which accept scheduler and it is &lt;strong&gt;highly recommended&lt;/strong&gt; to use those overload when you do use a scheduler.     &lt;br /&gt;&lt;/p&gt;  &lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.microsoft.co.il%2fblogs%2fbnaya%2farchive%2f2012%2f02%2f14%2frx-and-time-related-operators.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%253a%252f%252fblogs.microsoft.co.il%252fblogs%252fbnaya%252farchive%252f2012%252f02%252f14%252frx-and-time-related-operators.aspx" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Rx-and-Time-related-operators-Bnaya-Eshet"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fblogs.microsoft.co.il%2Fblogs%2Fbnaya%2Farchive%2F2012%2F02%2F14%2Frx-and-time-related-operators.aspx" /&gt;&lt;/a&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/operators" rel="tag"&gt;operators&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Reactive" rel="tag"&gt;Reactive&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Linq" rel="tag"&gt;Linq&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Buffer" rel="tag"&gt;Buffer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sample" rel="tag"&gt;Sample&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Replay" rel="tag"&gt;Replay&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scheduler" rel="tag"&gt;Scheduler&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Delay" rel="tag"&gt;Delay&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Timeout" rel="tag"&gt;Timeout&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Timestamp" rel="tag"&gt;Timestamp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TimeInterval" rel="tag"&gt;TimeInterval&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Generate" rel="tag"&gt;Generate&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Interval" rel="tag"&gt;Interval&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Timer" rel="tag"&gt;Timer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/factories" rel="tag"&gt;factories&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IObservable" rel="tag"&gt;IObservable&lt;/a&gt;,&lt;a href="http://technorati.com/tags/factory" rel="tag"&gt;factory&lt;/a&gt;,&lt;a href="http://technorati.com/tags/snippet" rel="tag"&gt;snippet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Code" rel="tag"&gt;Code&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Observable" rel="tag"&gt;Observable&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TimeSpan" rel="tag"&gt;TimeSpan&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FromSeconds" rel="tag"&gt;FromSeconds&lt;/a&gt;,&lt;a href="http://technorati.com/tags/version" rel="tag"&gt;version&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sequence" rel="tag"&gt;sequence&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FromMinutes" rel="tag"&gt;FromMinutes&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Subscribe" rel="tag"&gt;Subscribe&lt;/a&gt;,&lt;a href="http://technorati.com/tags/item" rel="tag"&gt;item&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Console" rel="tag"&gt;Console&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WriteLine" rel="tag"&gt;WriteLine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Format" rel="tag"&gt;Format&lt;/a&gt;,&lt;a href="http://technorati.com/tags/selector" rel="tag"&gt;selector&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Records" rel="tag"&gt;Records&lt;/a&gt;,&lt;a href="http://technorati.com/tags/task" rel="tag"&gt;task&lt;/a&gt;,&lt;a href="http://technorati.com/tags/operator" rel="tag"&gt;operator&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Value" rel="tag"&gt;Value&lt;/a&gt;,&lt;a href="http://technorati.com/tags/duration" rel="tag"&gt;duration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OnError" rel="tag"&gt;OnError&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TimeoutException" rel="tag"&gt;TimeoutException&lt;/a&gt;,&lt;a href="http://technorati.com/tags/threshold" rel="tag"&gt;threshold&lt;/a&gt;,&lt;a href="http://technorati.com/tags/projection" rel="tag"&gt;projection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Datum" rel="tag"&gt;Datum&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Create" rel="tag"&gt;Create&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Summary" rel="tag"&gt;Summary&lt;/a&gt;,&lt;a href="http://technorati.com/tags/concept" rel="tag"&gt;concept&lt;/a&gt;,&lt;a href="http://technorati.com/tags/topic" rel="tag"&gt;topic&lt;/a&gt;,&lt;a href="http://technorati.com/tags/singleDueTime" rel="tag"&gt;singleDueTime&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt; Windows Live Tags: &lt;a href="http://windows.live.com/connect/tag/operators" rel="clubhouseTag"&gt;operators&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Reactive" rel="clubhouseTag"&gt;Reactive&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Linq" rel="clubhouseTag"&gt;Linq&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Buffer" rel="clubhouseTag"&gt;Buffer&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Sample" rel="clubhouseTag"&gt;Sample&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Replay" rel="clubhouseTag"&gt;Replay&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Scheduler" rel="clubhouseTag"&gt;Scheduler&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Delay" rel="clubhouseTag"&gt;Delay&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Timeout" rel="clubhouseTag"&gt;Timeout&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Timestamp" rel="clubhouseTag"&gt;Timestamp&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/TimeInterval" rel="clubhouseTag"&gt;TimeInterval&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Generate" rel="clubhouseTag"&gt;Generate&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Interval" rel="clubhouseTag"&gt;Interval&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Timer" rel="clubhouseTag"&gt;Timer&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/factories" rel="clubhouseTag"&gt;factories&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/IObservable" rel="clubhouseTag"&gt;IObservable&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/factory" rel="clubhouseTag"&gt;factory&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/snippet" rel="clubhouseTag"&gt;snippet&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Code" rel="clubhouseTag"&gt;Code&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Observable" rel="clubhouseTag"&gt;Observable&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/TimeSpan" rel="clubhouseTag"&gt;TimeSpan&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/FromSeconds" rel="clubhouseTag"&gt;FromSeconds&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/version" rel="clubhouseTag"&gt;version&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/sequence" rel="clubhouseTag"&gt;sequence&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/FromMinutes" rel="clubhouseTag"&gt;FromMinutes&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Subscribe" rel="clubhouseTag"&gt;Subscribe&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/item" rel="clubhouseTag"&gt;item&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Console" rel="clubhouseTag"&gt;Console&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/WriteLine" rel="clubhouseTag"&gt;WriteLine&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Format" rel="clubhouseTag"&gt;Format&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/selector" rel="clubhouseTag"&gt;selector&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Records" rel="clubhouseTag"&gt;Records&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/task" rel="clubhouseTag"&gt;task&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/operator" rel="clubhouseTag"&gt;operator&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Value" rel="clubhouseTag"&gt;Value&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/duration" rel="clubhouseTag"&gt;duration&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/OnError" rel="clubhouseTag"&gt;OnError&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/TimeoutException" rel="clubhouseTag"&gt;TimeoutException&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/threshold" rel="clubhouseTag"&gt;threshold&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/projection" rel="clubhouseTag"&gt;projection&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Datum" rel="clubhouseTag"&gt;Datum&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Create" rel="clubhouseTag"&gt;Create&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/Summary" rel="clubhouseTag"&gt;Summary&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/concept" rel="clubhouseTag"&gt;concept&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/topic" rel="clubhouseTag"&gt;topic&lt;/a&gt;,&lt;a href="http://windows.live.com/connect/tag/singleDueTime" rel="clubhouseTag"&gt;singleDueTime&lt;/a&gt;   &lt;br /&gt;WordPress Tags: &lt;a href="http://wordpress.com/tag/operators" rel="Tag"&gt;operators&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Reactive" rel="Tag"&gt;Reactive&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Linq" rel="Tag"&gt;Linq&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Buffer" rel="Tag"&gt;Buffer&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Sample" rel="Tag"&gt;Sample&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Replay" rel="Tag"&gt;Replay&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Scheduler" rel="Tag"&gt;Scheduler&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Delay" rel="Tag"&gt;Delay&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Timeout" rel="Tag"&gt;Timeout&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Timestamp" rel="Tag"&gt;Timestamp&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/TimeInterval" rel="Tag"&gt;TimeInterval&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Generate" rel="Tag"&gt;Generate&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Interval" rel="Tag"&gt;Interval&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Timer" rel="Tag"&gt;Timer&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/factories" rel="Tag"&gt;factories&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/IObservable" rel="Tag"&gt;IObservable&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/factory" rel="Tag"&gt;factory&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/snippet" rel="Tag"&gt;snippet&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Code" rel="Tag"&gt;Code&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Observable" rel="Tag"&gt;Observable&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/TimeSpan" rel="Tag"&gt;TimeSpan&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/FromSeconds" rel="Tag"&gt;FromSeconds&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/version" rel="Tag"&gt;version&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/sequence" rel="Tag"&gt;sequence&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/FromMinutes" rel="Tag"&gt;FromMinutes&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Subscribe" rel="Tag"&gt;Subscribe&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/item" rel="Tag"&gt;item&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Console" rel="Tag"&gt;Console&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/WriteLine" rel="Tag"&gt;WriteLine&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Format" rel="Tag"&gt;Format&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/selector" rel="Tag"&gt;selector&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Records" rel="Tag"&gt;Records&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/task" rel="Tag"&gt;task&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/operator" rel="Tag"&gt;operator&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Value" rel="Tag"&gt;Value&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/duration" rel="Tag"&gt;duration&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/OnError" rel="Tag"&gt;OnError&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/TimeoutException" rel="Tag"&gt;TimeoutException&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/threshold" rel="Tag"&gt;threshold&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/projection" rel="Tag"&gt;projection&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Datum" rel="Tag"&gt;Datum&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Create" rel="Tag"&gt;Create&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/Summary" rel="Tag"&gt;Summary&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/concept" rel="Tag"&gt;concept&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/topic" rel="Tag"&gt;topic&lt;/a&gt;,&lt;a href="http://wordpress.com/tag/singleDueTime" rel="Tag"&gt;singleDueTime&lt;/a&gt;   &lt;br /&gt;Blogger Labels: &lt;a href="http://BBnaya.blogspot.com/search/label/operators" rel="Tag"&gt;operators&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Reactive" rel="Tag"&gt;Reactive&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Linq" rel="Tag"&gt;Linq&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Buffer" rel="Tag"&gt;Buffer&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Sample" rel="Tag"&gt;Sample&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Replay" rel="Tag"&gt;Replay&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Scheduler" rel="Tag"&gt;Scheduler&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Delay" rel="Tag"&gt;Delay&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Timeout" rel="Tag"&gt;Timeout&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Timestamp" rel="Tag"&gt;Timestamp&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/TimeInterval" rel="Tag"&gt;TimeInterval&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Generate" rel="Tag"&gt;Generate&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Interval" rel="Tag"&gt;Interval&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Timer" rel="Tag"&gt;Timer&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/factories" rel="Tag"&gt;factories&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/IObservable" rel="Tag"&gt;IObservable&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/factory" rel="Tag"&gt;factory&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/snippet" rel="Tag"&gt;snippet&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Code" rel="Tag"&gt;Code&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Observable" rel="Tag"&gt;Observable&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/TimeSpan" rel="Tag"&gt;TimeSpan&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/FromSeconds" rel="Tag"&gt;FromSeconds&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/version" rel="Tag"&gt;version&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/sequence" rel="Tag"&gt;sequence&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/FromMinutes" rel="Tag"&gt;FromMinutes&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Subscribe" rel="Tag"&gt;Subscribe&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/item" rel="Tag"&gt;item&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Console" rel="Tag"&gt;Console&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/WriteLine" rel="Tag"&gt;WriteLine&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Format" rel="Tag"&gt;Format&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/selector" rel="Tag"&gt;selector&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Records" rel="Tag"&gt;Records&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/task" rel="Tag"&gt;task&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/operator" rel="Tag"&gt;operator&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Value" rel="Tag"&gt;Value&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/duration" rel="Tag"&gt;duration&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/OnError" rel="Tag"&gt;OnError&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/TimeoutException" rel="Tag"&gt;TimeoutException&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/threshold" rel="Tag"&gt;threshold&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/projection" rel="Tag"&gt;projection&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Datum" rel="Tag"&gt;Datum&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Create" rel="Tag"&gt;Create&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/Summary" rel="Tag"&gt;Summary&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/concept" rel="Tag"&gt;concept&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/topic" rel="Tag"&gt;topic&lt;/a&gt;,&lt;a href="http://BBnaya.blogspot.com/search/label/singleDueTime" rel="Tag"&gt;singleDueTime&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1013385" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/SELA/default.aspx">SELA</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Rx/default.aspx">Rx</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/IObserver/default.aspx">IObserver</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/IObservable/default.aspx">IObservable</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Reactive/default.aspx">Reactive</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Reactive+Extension/default.aspx">Reactive Extension</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Delay/default.aspx">Delay</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Generate/default.aspx">Generate</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/TimeInterval/default.aspx">TimeInterval</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Timestamp/default.aspx">Timestamp</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Interval/default.aspx">Interval</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Timeout/default.aspx">Timeout</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Timer/default.aspx">Timer</category></item></channel></rss>