IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment TUER une Task


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Par défaut Comment TUER une Task
    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.

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Franchement, si les cancellation token ne sont pas utilisable, je ne vois pas trop comment faire. A moins de faire un kill de la task, mais c'est vraiment aimer vivre dangereusement.

    Je suggèrerais de revoir l'architecture. En faisant comme intellisense, par exemple. Quand rien n'est tapé pendant 200ms, on lance la task. Ca limitera déjà pas mal les tasks.

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Effectivement la solution est de mettre en tampon l'appel. C'est assez simple avec les ReactiveExtensions

Discussions similaires

  1. comment tuer une session
    Par bim92i dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 10/06/2008, 10h36
  2. Comment tuer une liste de processus sous shell
    Par michel.guilhem dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/04/2007, 13h39
  3. Comment tuer une frame
    Par tymous dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 28/07/2004, 11h53
  4. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo