C# équivalent à fork () et exec()
Je suis au point un programme qui a besoin de faire appel à un programme extérieur, mais doit attendre à ce qu'il exécute. Ceci est fait en C# (à laquelle je suis tout nouveau, mais que vous avez beaucoup d'expérience en C++, Qt et C) et de la fonction CreateProcess ne semble pas être ce que je suis à la recherche d' (démarre le processus, puis l'oublie, que je n'ai pas besoin).
C'est l'un de mes premiers projets de Windows (ou au moins, que Windows et certainement seulement .NET) et je suis beaucoup plus habitué à faire ce genre de chose pour *nix, où je voudrais utiliser la fourche et puis exec à l'enfant, puis d'attendre pour l'enfant de se terminer. Mais je n'ai aucune idée où commencer à chercher à faire quelque chose comme cela.
Oh, et je suis assez sûr que je suis coincé dans .NET parce que j'ai besoin de lire l'accès au registre pour terminer ce projet et .NET de l'accès au registre est absolument incroyable (à mon avis, je n'ai aucun point de comparaison).
Grâce.
OriginalL'auteur seanr8 | 2013-07-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
Process
classe. Il vous permet de spécifier quelques options sur la façon dont vous souhaitez exécuter, et fournit également une méthode qui attend le processus de sortie avant l'exécution de la prochaine instruction.regardez ce lien (la référence msdn):
http://msdn.microsoft.com/fr-fr/library/system.diagnostics.process.aspx
fondamentalement, ce que vous pouvez faire est de:
un exemple d'initialisation du processus (c'est juste un code, je l'ai utilisé une fois quelque part):
comme vous pouvez le voir dans ce code, vous pouvez aussi faire de la redirection de la sortie, erreur de redirection.... Si vous creusez dans la classe, je pense que vous trouverez assez rapidement ce dont vous avez besoin.
fork
ne fait, par exemple Linux, et Windows n'est pas comparable à une API, qui a dit il ya des choses que vous pouvez faire pour mieux imiterfork
fonctionnalité.fork
est beaucoup plus que simplement de fraie un autre processus dans Linux le langage est plus communément connu commespawn
qui c'est.Je suis venu ici à la recherche d'
fork
trop. Ce n'est pas ça.Ce n'est pas une fourchette pour le dire, mais il répond à la problématique soulevée dans la question. Pour une plus grande version de la fourche prendre un coup d'oeil à cette réponse (ne pas .Net orienté tout de même): stackoverflow.com/a/985525/2008409
OriginalL'auteur ppetrov
OriginalL'auteur I4V
Vous pouvez utiliser le Processus de la classe pour démarrer le processus externes.
Il vous permettra de démarrer des programmes arbitraires
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx
OriginalL'auteur TGH