Bonjour à tous,
J'ai réalisé il y a quelque temps de cela un petit toolkit graphique permettant d'afficher les résultats d'un regex dans un datatable à partir de deux textbox.
une textbox pour le pattern et une textbox pour le texte à "regexer".
Tout cela fonctionne dans le meilleur des mondes. Lorsque l'on change le moindre caractère d'une des deux textbox, un evenement lance le regex.
La ou le problème arrive est lorsque l'on souhaite utiliser un texte d'une certaine taille. Pour ne pas freezer l'interface on peut utiliser une Task qui travaille en tache de fonds.
Dans ce cas arrive un autre problème, un evenement produire le lancement d'une Task puis un autre evenement clavier produit une autre task etc...
Si l'on s'amuse à taper comme un malade sur le clavier cela peut créer des dizaines de task qui tournent en parallèlle alors que seule la dernière task m'intéresse.
Pour mettre un certain cadre à mon problème voici mes contraintes:
1) Les threads doivent disparaitre au profit des TASKs.
2) Le traitement de ma task est indivisible ==> donc pas de test envisageable sur un quelconque Token possible.
3) Je n'ai pas envie de coder un pattern Producteur/Consommateur qui me prenne ma dernière demande de création de task
En conclusion: Comment faire pour tuer ma task courante et ne lancer que la dernière task appellée.
MERCI d'avance si vous avez un piste sur ce petit problème qui me bloque depuis un moment.
Partager