Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1415 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] savoir si un processus est en train de réfléchir, possible ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] savoir si un processus est en train de réfléchir, possible ?

n°2112095
tomsoft
Posté le 17-11-2011 à 15:20:43  profilanswer
 

Bonjour,
J'ai une appli C# qui me fait un export à partir d'une autre appli,
A coup de sendkeys,  
J'ai juste une opération que je ne peut pas estimer en temps, cela dépend du réseau, ect...
 
Est-il possible de patienter jusqu'à ce que ce process retrouve ai fini son traitement, cad le curseur soit redevenu normal par exemple ?
 
Genre un  
 
while(process.isworking()){  
// tempo quelques secondes pour attendre
}
// suite
 
 
 
 

mood
Publicité
Posté le 17-11-2011 à 15:20:43  profilanswer
 

n°2112126
tomsoft
Posté le 17-11-2011 à 17:38:17  profilanswer
 

ha ouais, pas idiot la solution,
mais mon processus (SAP) ne consomme pas trop de CPU quand il bosse, c'est du traitement sur serveur, et retour, donc pas evident à determiner quand il bosse :(

 

Et c'est pas du C#, ni la main dessus :/

 

Pas sur que je puisse donc :(


Message édité par tomsoft le 17-11-2011 à 17:38:38
n°2112157
breizhbugs
Posté le 17-11-2011 à 21:41:45  profilanswer
 

http://msdn.microsoft.com/en-us/li [...] 71%29.aspx peut être?


---------------
Seul Google le sait...
n°2112176
tomsoft
Posté le 17-11-2011 à 23:16:10  profilanswer
 

je teste ca au bureau alors :)
merci, ca semble pouvoir convenir !

n°2112551
tomsoft
Posté le 21-11-2011 à 08:41:59  profilanswer
 

bon, aucune solution ne va :(
 
- Sendwait ne prend pas en compte le traitement de SAP,
- SAP ne consomme pas de CPU ni de ram, ni de reseau quand il requete (temps serveur je pense)
- Et waitforinputidle passe directement à la suite :/
 
SAP à une UI un peu batarde, je me demande si ca ne viendrait pas de la ...
 
Je ne vois qu'une solution : pouvoir voir quel est le curseur de la souris (normal, ou sablier)

n°2112749
breizhbugs
Posté le 22-11-2011 à 12:58:22  profilanswer
 

Quelque réflexion pour waitforinputidle:
-renvoie vrai/faux? renvoie faux si pas de boucle de message?
 
Sinon si c'est un programme style windows (donc avec boucle, je connais le programme en question en fait), est ce qu'il est multithread? (et donc le calcul se faisant hors du thread des messages celui ci se met en idle?
Ensuite si le calcul dépend du réseau/accès disque, etc alors le thread de calcul passe aussi beaucoup de temps à attendre...
donc pour détecter la fin pas évident?
Si thread spécial pour le calcul, détecter la fin du thread? (analyse de process.Threads?)

Message cité 1 fois
Message édité par breizhbugs le 22-11-2011 à 12:59:02

---------------
Seul Google le sait...
n°2112801
tomsoft
Posté le 22-11-2011 à 15:50:26  profilanswer
 

breizhbugs a écrit :

Quelque réflexion pour waitforinputidle:
-renvoie vrai/faux? renvoie faux si pas de boucle de message?


 
Il leve une exception si pas de boucle de message, et renvoi vrai ou faux oui
 

breizhbugs a écrit :

Sinon si c'est un programme style windows (donc avec boucle, je connais le programme en question en fait), est ce qu'il est multithread? (et donc le calcul se faisant hors du thread des messages celui ci se met en idle?
Ensuite si le calcul dépend du réseau/accès disque, etc alors le thread de calcul passe aussi beaucoup de temps à attendre...
donc pour détecter la fin pas évident?
Si thread spécial pour le calcul, détecter la fin du thread? (analyse de process.Threads?)


 
C'est un soft sous windows oui, mais pas avec l'interface graphique windows je pense
 
http://www.sap-integration.net/Portals/2/sap001.jpg
 
(capture google, on est sous vista)
 
Je pense qu'il est threadé oui, je vais eplucher process.threads voir si je peut en tirer quelquechose, c'est une piste  :)  
 
Actuellement mon appli marche, mais prends 50% de son temps à attendre pour etre sur que SAP ne reflechisse plus,  
soit 45min pour un export double-journalier, j'aimerais reduire à 20min / export en detectant la fin de calcul  :jap:

n°2112805
tomsoft
Posté le 22-11-2011 à 16:10:18  profilanswer
 

:love:

 

En parcourant tous les threads du process, ils sont tous en state wait quand sap ne fait rien, et quand je requete, j'ai bien un thread en running,

 

c'est tres bon ca, ca sera moins bancale et plus rassurant pour moi :jap:

 

merci pour les pistes

 

edit : et il repasse en wait apres, donc super,

 

une sorte de

 

do
tempo
while tous les threads ne sont pas en wait

 

suite


Message édité par tomsoft le 22-11-2011 à 16:11:24

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] savoir si un processus est en train de réfléchir, possible ?

 

Sujets relatifs
Fonction en language Cpossible ou pas? synchro de compte openldap -> active directory
Code A Provenance de train + numero[C] Puissance 4 arbres de possibilité
[C][Gnu] info utilisation memoire, processeur et swap [résolu]logger ouverture fermeture processus
fonctionnement getchar en Ccolorer une carte geographique creé par openGL C++
[ Divers / C ] Ecrire pour un afficheur LCD 
Plus de sujets relatifs à : [C#] savoir si un processus est en train de réfléchir, possible ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR