title: How to track if an async/awaitable task is running
body: <p>I'm trying to transition from the Event-based Asynchronous Pattern where I tracked running methods using unique id's and the asynoperationmanager. <br/>As this has now been dropped from Windows 8 Apps I'm trying to get a similar effect with Async/Await but can't quite figure out how.<br/>
  What I'm trying to achieve is something like</p>
  
  <pre><code>private async Task updateSomething()
  {
      if(***the method is already running***)
      {
          runagain = true;
      }
      else
      {
          await someMethod();
          if (runagain)
          {
              run the method again
          }            
      }
  }
  </code></pre>
  
  <p>The part I'm struggling with is finding out if the method is running. I've tried creating a Task and looking at the status of both that and the .status of the async method but they don't appear to be the correct place to look.
  Thanks</p>
  
  <p>UPDATE: This is the current code I use in .net 4 to achieve the same result.  _updateMetaDataAsync is a class based on the Event-Based Asynchronous Pattern.</p>
  
  <pre><code>private void updateMetaData()
      {
          if (_updateMetaDataAsync.IsTaskRunning(_updateMetaDataGuid_CheckAllFiles))
          {
              _updateMetaDataGuid_CheckAllFiles_Again = true;
          }
          else
          {
              _updateMetaDataGuid_CheckAllFiles_Again = false;
              _updateMetaDataAsync.UpdateMetaDataAsync(_updateMetaDataGuid_CheckAllFiles);
          }
      }
  
  private void updateMetaDataCompleted(object sender, UpdateMetaDataCompletedEventArgs e)
      {
          if (_updateMetaDataGuid_CheckAllFiles_Again)
          {
              updateMetaData();
          }
      }
  </code></pre>