Il y a une tâche très commune que je fais face encore. Je l'ai déjà résolu à quelques reprises, mais maintenant je suis à la recherche d'un plus "élégant" façon - pouvez-vous livrer une certaine entrée?Temporisation de tâche asynchrone?
Situation:
J'ai une méthode que je voudrais courir "semi async". En d'autres termes: Commencez et attendez un moment x. Si la méthode n'est pas terminée à ce moment-là ("expiré"), je veux continuer mon code avec quelques procédures de nettoyage.
Solutions écrit:
- utiliser un AutoResetEvent (ou ManualResetEvent) associé à un procédé de annonymus utilisant .WaitOne (x).
- Utilisez un thread/BackgroundWorker associé à un minuteur. Si le temporisateur atteint son gestionnaire avant que le thread ne l'arrête, le délai est expiré.
Les deux appraochs fonctionnent bien mais j'imagine qu'il existe un meilleur moyen avec 4.0.
Suggestions?
duplication possible de [Attente asynchrone de la tâche pour terminer avec le délai] (http://stackoverflow.com/questions/4238345/ asynchrone-wait-for-taskt-to-complete-with-timeout) –
i3arnon