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

Entrée/Sortie Java Discussion :

Arreter un thread lancer une dll jna


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut Arreter un thread lancer une dll jna
    Bonjour, voilà j'ai une ihm qui, lorsque l'on appuie sur un bouton effectue le lancement d'un thread, celui ci lançant une dll Fortran faisant un calcul.
    ce calcul peut être long (4-5 mn)
    Je voudrais pouvoir l’arrêter à l'aide d'un bouton "annuler" par exemple, mais il semblerait que dès lors le calcul lancé on ait plus la main sur ce thread...
    j'ai essayé monThread.interrupt()
    ou en passant par Service au lieu de Thread, pareil.
    Quelqu'un saurait-il m'aider svp
    Après la difficulté, la facilité...

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Au début j'ai pensé à une utilisation de CompletableFuture (pattern Promise) pour lancer ton calcul, avoir un callback de retour pour ton résultat, et si besoin arrêter les opérations avec completableFuture.cancel(true);, mais je ne suis pas sur que le cancel arrête vraiment le déroulement des opérations.

    Une autre idée que j'avais en tête (qui pourrait peut-être fonctionner pour JNI) est qu'au lancement de ta méthode native cette dernière sette un attribut id de ton objet Java (qui lance la méthode native) avec l'identifiant du processus obtenu à partir de GetProcessId() pour Windows ou getpid() pour les systèmes Posix.

    PS : Comme tu as un calcul qui dure plusieurs minutes c'est que tu as affaire à un batch. Par curiosité, pourquoi utiliser JNI/JNA pour lancer ton process Fortran, alors que tu pourrais découpler ton IHM Java et ton application Fortran (les calculs), pour lancer tes calculs via un ProcessBuilder et l'arrêter via un process.destroy(); ?

    A+
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Merci
    Pour des questions juridiques...Process builder necessitera donc deux executables...
    il m'en faut un seul, d'ou la dll...
    Après la difficulté, la facilité...

Discussions similaires

  1. Utilisation d'un Thread dans une DLL
    Par colorid dans le forum Langage
    Réponses: 7
    Dernier message: 14/03/2009, 11h05
  2. Problème de terminaison de thread dans une DLL
    Par johjoh dans le forum Langage
    Réponses: 4
    Dernier message: 25/09/2008, 18h29
  3. Réponses: 3
    Dernier message: 19/03/2008, 09h38
  4. Lancer une dll à partir d'un exe
    Par jean.cdc dans le forum C
    Réponses: 17
    Dernier message: 25/07/2006, 17h44
  5. Réponses: 15
    Dernier message: 07/07/2005, 11h05

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