title: How to set in Silverlight WebClient timeout?
body: <p>I use WebClient in a Silverlight Appliction to access REST Services. Its an unknown amount of asynchronous calls. 
  The cool thing is, you can order your requests and responses!  the responses are matched to theirs requests! This is necessary, because you do not know in what order the responses will come back.</p>
  
  <p>But how do i get a "timeout" for my calls with WebClient? lets say 15 sec
  I would like kinda to stick to WebClient/this code with delegates/lambda. I know there is a timeout property with WebRequest class, but i am not sure if just can replace WebClient with WebRequest but keep the functionality.</p>
  
  <pre><code>int maxRequests = list_S.Count;
  // amount of URI
          foreach (string item in list_S)
          {
              bool isValid = Uri.IsWellFormedUriString(item, UriKind.Absolute);
              Uri uriTest;
              if(isValid) //if it is valid Uri, send request
              {
                  WebClient wc = new WebClient();
                  wc.DownloadStringCompleted += (s, args) =&gt;
                  {
                      if (args.Error == null)
                      {
                          dict.Add((int)args.UserState, args.Result);
  
                      }
                      //here you test if it is the last request... if it is, you can
                      //order the list and use it as you want 
                      if (dict.Count == maxRequests)
                      {
                          var orderedResults = dict.OrderBy(a =&gt; a.Key);
                      }
                      closeTabitem_SensorSource();
                  };
                  wc.DownloadStringAsync(new Uri(item), i++);
              }
              else
              {
                  MessageBox.Show("Uri FAIL!: " + item);
              }
          }
  </code></pre>