title: Trigger an action to start after X milliseconds
body: <p>I'm developing a Xamarin Forms mobile app, which has a page containing a SearchBar, a ListView, and Map control.  The list view contains a list of addresses, which are reflected as pins on the map.</p>
  
  <p>As the user types in the SearchBar, the ListView is automatically updated (through ViewModel binding).  The ViewModel method that filters the datasource for the list looks something like this...</p>
  
  <pre><code>void FilterList()
  {
      listDataSource = new ObservableCollection&lt;location&gt;(
          locationData.Where(l =&gt; l.Address.Contains(searchBar.Text))
      );
  
      // ***** Now, update the map pins using the data in listDataSource
  }
  </code></pre>
  
  <p>I want to update the Map as the ListView is filtered, but not on EVERY keypress as that could happen multiple times a second.  Essentially, I want a "rolling pause" in each FilterList event before the Map is updated.  In pseudo-code...</p>
  
  <pre><code>    // ***** Now, update the map pins using the data in listDataSource
      if (a previously-requested map update is pending)
      {
          // Cancel the pending map update request
      }
  
      // Request a new map update in 1000ms using [listDataSource]
  </code></pre>
  
  <p>It's possible to do this using the <strong>Stopwatch</strong> class, which is available in Portable Class Libraries, but I suspect there's a cleaner/better way to accomplish this using <strong>Tasks</strong>.</p>
  
  <p>Can anyone suggest a "cleverer" <strong>PCL-compatible</strong> way to do this?</p>