Is this a good example of Reactive Extensions? How can I make this better?
possible improvements :


make CallStackOverflow asynchronous
use Observavle.Timer instead of thread.sleep


Here is what it would look like

class Program
{
   static void Main(string[] args)
   {

        Observable
        .Timer(TimeSpan.Zero,TimeSpan.FromSeconds(10))
        .Take(10)
        .Select(() =&gt; CallStackOverFlow().ToObservable())
        .Select(d =&gt; {
             //send the result for checking to a delegate
               foreach (var q in d.questions)
                   {
                       var list = (q.tags as JArray).Values().Select(v =&gt; v.ToString()).ToList();
                       var result = FindByTag(list);
                       if(result)
                           Console.WriteLine("Quesion title :{0}",q.title);
                   }
         })
         .Wait();

       Console.WriteLine("Subscribing"); // Make visible when we subscribe
       start.Subscribe(Console.WriteLine);
       Console.ReadKey();
   }

   private static readonly Func&lt;List&lt;String&gt;,bool&gt; FindByTag =(x =&gt; x.Contains("c#"));

   private static async  Task&lt;dynamic&gt; CallStackOverFlow()
   {
       var client = new RestClient("http://api.stackoverflow.com/1.1");
       var request = new RestRequest("/questions/no-answers", Method.POST);
       // -- async invocation
       var response = await client.ExecuteAsync(request); 
       // or  var response = await Task.Factory.FromAsync&lt;TResponse&gt;(client.BeginExecute, client.EndExecute, null);
       var content = response.Content; // raw content as string
       dynamic deserialised = JsonConvert.DeserializeObject(content);
       return deserialised;
   }
}