Personnellement, je pense que Thread.Sleep
est une mauvaise mise en œuvre. Il verrouille l'interface utilisateur, etc. Personnellement, j'aime les implémentations de minuterie puisqu' elles attendent puis se déclenchent.
Utilisation : DelayFactory.DelayAction(500, new Action(() => { this.RunAction(); }));
//Note Forms.Timer and Timer() have similar implementations.
public static void DelayAction(int millisecond, Action action)
{
var timer = new DispatcherTimer();
timer.Tick += delegate
{
action.Invoke();
timer.Stop();
};
timer.Interval = TimeSpan.FromMilliseconds(millisecond);
timer.Start();
}