Friday 10 February 2017

Processus Waitforexit C #

WaitForExit () est une méthode de blocage de thread C'est exactement la cause du problème. Si WaitForExit est appelé à partir du thread Forms, il empêchera le formulaire d'être redessiné. Le fait de glisser quelque chose devant une fenêtre bloquée laisse une trace de la fenêtre traînée. Proposé comme réponse par ahmedilyas Modérateur jeudi 28 juillet 2011 10:34 Marqué comme réponse par Jackie-Sun Modérateur lundi, 08 août 2011 06:50 Jeudi 28 juillet 2011 10:18 AM Code serait mieux et il Serait également préférable si vous pouvez nous dire exactement ce que vous essayez d'atteindre. Le WaitForExit () attend simplement (bloque votre code pour cette durée) pour un processus à quitter avant de continuer avec l'exécution de votre code d'appel. C MVP (2007-2010) MS Vendor - MS Tout le chemin Follower depuis 1995 MS Super Evangelist MSDN Forums Modérateur Proposé comme réponse par ahmedilyas Modérateur jeudi 28 juillet 2011 10:33 Marqué comme réponse par Jackie-Sun Modérateur Lundi, Août 08, 2011 6:50 AM Thursday, July 28, 2011 9:57 AM Toutes les réponses Je pense que cela n'a aucune relation avec la fonction waitforexit. Forme que vous faites glisser. Première forme exe ou seconde forme exe. Un petit code est apprécié, marquer mon post comme réponse si mon message vous a été utile jeudi 28 juillet 2011 9:52 AM Code serait mieux et il serait également préférable si vous pouvez nous dire exactement ce que vous essayez d'atteindre . Le WaitForExit () attend simplement (bloque votre code pour cette durée) pour un processus à quitter avant de continuer avec l'exécution de votre code d'appel. C MVP (2007-2010) MS Vendor - MS Tout le chemin Follower depuis 1995 MS Super Evangelist MSDN Forums Modérateur Proposé comme réponse par ahmedilyas Modérateur jeudi 28 juillet 2011 10:33 Marqué comme réponse par Jackie-Sun Modérateur Lundi, Août 08, 2011 6:50 AM Thursday, July 28, 2011 9:57 AM J'avais checked. it a un problème sur waitforexit () only. i remarqué que le problème lors du déplacement deuxième forme exe Modifié par RAJ KUMAR. R Jeudi 28 Juillet, 2011 10:09 AM Thursday, July 28, 2011 10:02 AM Quel est exactement le problème avez-vous lu ma réponse avez-vous également lu le lien que j'avais fourni WaitForExit () est une méthode de blocage de thread qui fera exactement que - attendre Pour qu'un processus se termine avant qu'il continue avec votre code. Il ne fera pas votre formulaire de masquer ou de minimiser à tous, sauf si vous dites à votre code pour ce faire avant d'appeler WaitForExit () C MVP (2007-2010) MS Vendeur - MS Tout le chemin Follower depuis 1995 MS Super Evangelist MSDN Forums Moderator Jeudi, July 28, 2011 10:05 AM Tout fonctionne bien. mais quand je bouge le formulaire, il montre la forme multiple. Jeudi 28 juillet 2011 10:09 WaitForExit () est une méthode de blocage de thread C'est exactement la cause du problème. Si WaitForExit est appelé à partir du thread Forms, il empêchera le formulaire d'être redessiné. Le fait de glisser quelque chose devant une fenêtre bloquée laisse une trace de la fenêtre traînée. Proposé comme réponse par ahmedilyas Modérateur jeudi, 28 juillet 2011 10:34 AM Marqué comme réponse par Jackie-Sun Modérateur lundi, août 08, 2011 6:50 AM Thursday, July 28, 2011 10:18 AM quand vous dites montrant plusieurs formulaires - est-ce que vous parlez de plusieurs instances des formulaires ou juste de la drawingrendering si c'est le drawingrendering alors oui, comme dit avant - c'est parce qu'il attend le processus pour exitend avant qu'il continue et est threadblocking donc vous verrez quotproblemquot vous Semblent décrire. Il n'y a pas de quotfixquot pour cela car ce n'est pas un bogue ou un problème, mais simplement ce que vous utilisez et comment vous l'utilisez. Existe-t-il une raison pour laquelle vous utilisez WaitForExit (). Vous devez montrer votre formulaire lorsque vous utilisez WaitForExit () Pourquoi ne pas cacher ou minimiser le formulaire avant d'appeler WaitForExit () puis le restaurer afterwords C MVP (2007-2010) MS Fournisseur - MS Tout le chemin Follower depuis 1995 MS Super Evangelist MSDN Forums Modérateur jeudi, 28 juillet, 2011 10:35 Microsoft effectue un sondage en ligne pour comprendre votre opinion sur le site Web Msdn. Si vous choisissez de participer, le sondage en ligne vous sera présenté lorsque vous quitterez le site Web Msdn. Souhaitez-vous participer Aidez-nous à améliorer MSDN. Visitez notre page UserVoice pour soumettre et voter sur les idées Centres de développement Ressources d'apprentissageChaque permanent est WaitForExit (). Je veux dire, il ya quoi que ce soit une alternative peut faire pour briser l'attente sinon je vais exécuter mon thread dans une fonction distincte, et le contrôler par des variables globales. Raison - un thread CMD. EXE, avec une application console en cours d'exécution, dont nous avons besoin d'annuler avant de le fil de son cours. Voici ce que nous avons: ProcessStartInfo psi nouveau ProcessStartInfo (quotCMD. EXEquot, query) psi. UseShellExecute useShellExec psi. RedirectStandardOutput stdout psi. CreateNoWindow noWindow hbProc nouveau Process () hbProc Process. Start (psi) hbProc. WaitForExit () Use: while (hbProc. WaitForExit (someTimeout)) si (ShouldCancel) break Sur Sep 19, 5:15 am, quotMarc Gravellquot ltmarc. grav. Gt a écrit: gt Eh bien, vous pouvez utiliser: gt gt tandis que (hbProc. WaitForExit (someTimeout)) gt if (ShouldCancel) rupture gt gt gt gt gt Marc (note, il n'ya aucune raison d'appeler à la fois le nouveau Process (Psi) Ou vous pouvez utiliser: hbProc new Process () hbProc. EnableRaisingEvents true hbProc. Exited nouveau EventHandler (functionToCallAfterProcesit) hbProc. StartInfo psi hbProc. Start () autre thread-on voulez annuler l'événement: hbProc - new EventHandler FunctionToCallAfterProcesit) Dans les deux cas, il suffit d'être conscient de la condition de course potentielle entre le processus de sortie et le désir d'annuler l'attente. Le 19 septembre, à 16h11, Alistair George ltnon. xtra. co. nzgt a écrit: gt Comment permanente est Gt Raison - un thread CMD. EXE, avec une console Application en cours d'exécution, que nous avons besoin d'annuler avant de le fil de son cours. Gt Voici ce que nous avons: gt ProcessStartInfo psi nouveau gt ProcessStartInfo (quotCMD. EXEquot, requête) gt psi. UseShellExecute useShellExec gt psi. RedirectStandardOutput stdout gt psi. CreateNoWindow noWindow gt hbProc nouveau Process () gt hbProc Process. Start (psi) gt HbProc. WaitForExit () gt gt Merci, gt Alistair. Vous pouvez soit tuer le thread en cours d'exécution WaitForExit () soit utiliser la surcharge qui vous permet de spécifier un timeout bool WaitForExit (int msToWait). Si vous l'exécutez dans un fil séparé et tuez-le vous allez obtenir une exception interrompue. Vous pouvez vous assurer que le processus que vous avez commencé n'est pas encore en cours d'exécution (si c'est le cas, tuez-le). Gt Vous pouvez soit tuer le thread en cours d'exécution WaitForExit () soit utiliser la surcharge gt qui vous permet de spécifier un timeout bool WaitForExit (int gt msToWait). Si vous l'exécutez dans un thread distinct et de tuer youre gt va obtenir une exception interrompue. Vous pouvez vous assurer que le processus gt que vous avez commencé n'est pas encore en cours d'exécution (si c'est le cas, tuez-le). Gt Merci les gars avec les suggestions qui sont utiles. Indiquera quelle option a le mieux fonctionné. Al. Copie de copyright 2005-2016, TechTalkz. Tous les droits sont réservés.


No comments:

Post a Comment