Comment suivre si un async/awaitable tâche est en cours d'exécution

Je suis en train de faire la transition à partir de l'Événement-en fonction du Modèle Asynchrone où j'ai suivi l'exécution de méthodes utilisant les id unique et la asynoperationmanager.
Comme cela a maintenant été supprimés à partir de Windows 8 Applications que je vais essayer d'obtenir un effet similaire avec Async/Await, mais ne peut pas comprendre comment.

Ce que je suis en train de réaliser est quelque chose comme

private async Task updateSomething()
{
    if(***the method is already running***)
    {
        runagain = true;
    }
    else
    {
        await someMethod();
        if (runagain)
        {
            run the method again
        }            
    }
}

La partie, je suis mal, c'est de savoir si la méthode est en cours d'exécution. J'ai essayé de créer une Tâche et en regardant l'état de la fois que et la .le statut de la méthode asynchrone, mais ils ne semblent pas être le bon endroit pour chercher.
Grâce

Mise à JOUR: il s'agit du code que j'utilise dans .net 4 pour obtenir le même résultat. _updateMetaDataAsync est une classe basée sur l'Événement en Fonction du Modèle Asynchrone.

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();
        }
    }

OriginalL'auteur Oli | 2012-08-23