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

savoir si un processus est en train de réfléchir, possible ? [C#] - C#/.NET managed - Programmation

Marsh Posté le 17-11-2011 à 15:20:43    

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
 
 
 
 

Reply

Marsh Posté le 17-11-2011 à 15:20:43   

Reply

Marsh Posté le 17-11-2011 à 17:38:17    

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
Reply

Marsh Posté le 17-11-2011 à 21:41:45    

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


---------------
Seul Google le sait...
Reply

Marsh Posté le 17-11-2011 à 23:16:10    

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

Reply

Marsh Posté le 21-11-2011 à 08:41:59    

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)

Reply

Marsh Posté le 22-11-2011 à 12:58:22    

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...
Reply

Marsh Posté le 22-11-2011 à 15:50:26    

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:

Reply

Marsh Posté le 22-11-2011 à 16:10:18    

: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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed