Astuce #Windows (#Phone) : comment s’assurer qu’une action dure au moins une certaine durée

Petite astuce du jour, bonjour ! Souvent, on prends du temps à créer de magnifiques écrans de chargement dans nos applications. Nous les trouvons certaines fois tellement beaux que nous voulons laisser le temps à l’utilisateur de les admirer. Il peut aussi arriver qu’afficher un écran de chargement pour quelques millisecondes produise un effet “flash” peut esthétique. Découvrons aujourd’hui comment s’assurer, simplement, qu’une action dure au moins un certains temps !

 

Pour cela rien de plus simple, nous allons utiliser await/async et Task.Delay pour créer une tâche “attendant” le temps voulu. Nous faisons alors le traitement nécessaire et au dernier moment, nous pouvons attendre la tâche initialement créée. Si le temps défini est terminé elle retournera immédiatement, sinon elle attendra le temps restant. Notez bien, que nous ne faisons que créer la tâche au début de la méthode, nous n’attendons pas la fin du delay.

public async Task NousAInfiniteSquareAsync(){

    //On attends 2 secondes minimum.
    var attenteTask = Task.Delay(2000);

    // ici je fais mon chargement (long ou court)


    //finalement, j'attends la tâche initialement crée.
    await attenteTask;

}

 

 Update : à la dernière ligne, vous êtes sur que votre traitement est fini car il est exécuté avant “l’attente finale” et vous vous assurez d’attendre au moins le temps voulu sans avoir à faire de calculs de durée/timestamp.

Et voila ! C’est une petite astuce qui montre encore la puissance d’await/async et qui j’espère vous sera utile.

 

Si vous souhaitez une démo, téléchargez et essayez Infinite Buffer sur le Windows Phone Store :)

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus