19 mai
Posté par: Bill2 dans: Développement, v3.3.2.0
La « mise en pause » des processus est une fonctionnalité qui m’a déjà été demandée plusieurs fois.
J’ai un peu cherché dans le Framework, et au niveau « Processus », ça n’existe pas directement.
Les seuls codes que j’ai trouvé, et qui soient facilement exploitables, se contentent de mettre tous les threads d’un processus en pause, en utilisant des API Windows.
Et forcément, c’est le genre de code qui n’est pas totallement « sûr ». En effet, que se passe-t-il si on suspend un thread qui est dans une section critique, alors qu’un autre thread attend un résultat, et que la remise en route des threads ne se fait pas correctement ? Et bien, on obtient un processus figé.
Mon programme « joue » déjà avec la priorité et l’affinité, ce que certains considèrent comme dangereux et devant être réservé au système d’exploitation.
Là, en implémentant possibilité de « mettre en pause » des processus, mon programme risque de rendre instable la machine des utilisateurs, et je ne pense pas que ce soit un bon point.
Alors : pour où contre cette fonctionnalité de mise en pause des processus ?
4 Réponses
Novgorod
20|mai|2009 1Bonjour,
A quoi peut bien servir la pause ?
Si un processus est « génant », soit on se débrouille pour qu’il ne démarre pas ou on arrete le programme. Je trouve que process manager ajoute des possibilités à windows pour la gestion de processus déjà bien suffisante.
Merci pour le développement de ce logiciel.
J’en profite pour demander s’il y aurait pas une autre possibilité pour le don autre que paypal ? (obligé de donner le vrai compte bancaire et celui-ci est bloqué par la banque).
Bill2
20|mai|2009 2Bonjour,
L’utilité de cette fonction est « simple » : vous avez lancé un gros calcul de rendu 3D, utilisant correctement tous les processeurs (donc optimisé multi CPU)
Mais, pour une raison quelconque, vous avez un besoin ponctuel d’avoir toute la puissance possible pour faire une autre opération utilisant beaucoup le CPU.
Même en jouant avec la priorité et l’affinité, le calcul 3D prendra une part non négligeable de ressources.
L’idée est alors de « mettre en pause » le calcul, plutot que de fermer le programme, pour ne pas devoir refaire le travail de A à Z.
Ainsi, vous diposé « ponctuellement » de toute la puissance, sans pour autant perdre votre travail en cours.
Mais bon, je ne suis pas sûr que ça fonctionne à 100%, donc ça sera « à vos risques et périls » …
Yanos
20|mai|2009 3Heu perso c’est une fonctionnalité que je n’utiliserais jamais, je n’en vois pas l’utilité.
La stabilité des threads/process est un point assez épineux. Quand je développais des applis systèmes c’était quand même sueurs froides et compagnie, surtout quand ça tourne sur un serveur
Donc faire joujou avec celà moi je ne m’y aventure pas
Ou éventuellement sur une machine virtuelle
Donc si tu met en place ce genre de chose, mets bien des Warnings à la Avast avec une grosse sirène des trucs qui clignotent et un message « Surtout ne paniquez pas »
A++
Bill2
21|mai|2009 4Yep.
Je n’ai pas encore tranché la question, mais si je met en place la fonction, je pense que :
- il y aura un avertissement non désactivable
- la fonctionnalité devrait être explicitement activée dans les options, et ne sera donc pas disponible par défaut.
Recherche
Calendrier
Rubriques
A visiter
Articles récents
Commentaires récents
Archives
Connectivité