J'avais initialement créé un formulaire Windows pour être un dialogue de mon formulaire principal de projets. Maintenant, le dialogue devient suffisamment complexe pour être lancé dans son propre processus. Existe-t-il un moyen de le faire dans le code ou dois-je créer un nouveau projet et y associer mes fichiers?Spawning form dans le nouveau processus
Répondre
Je remets en question la prémisse ici - il n'y a aucune raison de commencer nécessairement une nouvelle "forme" dans un processus séparé. Si le formulaire devient complexe, je vous recommande de le simplifier, si ce n'est pour d'autres raisons que la facilité d'utilisation. Ceci étant dit, vous pouvez toujours lancer un nouveau processus via le code Process.Start. Si vous voulez que ce soit dans le même projet, mais démarrez un processus séparé, vous pouvez lancer l'exécutable exe avec un argument de ligne de commande qui vous permet de changer quel "formulaire" est chargé au démarrage.
Vous aurez besoin de configurer un calque de communication (WCF utilisant des tubes nommés serait probablement la meilleure solution).
Mais je me demanderais sérieusement pourquoi vous avez besoin d'un nouveau processus pour votre formulaire? Assurez-vous que tout ce que vous faites sur votre formulaire est fait sur un fil séparé. De cette façon, vous pouvez avoir des dizaines de formulaires ouverts, mais votre application restera très réactive. Ce n'est pas la meilleure solution, mais si vous essayez d'éviter une réécriture, un appel à Application.DoEvents
va pomper la file d'attente des messages et vous rendre un peu réactif si vous avez beaucoup de mises à jour sur votre interface utilisateur. Bande d'aide à votre problème cependant.
- 1. sous-processus spawning console avec sortie différente
- 2. JSON Spawning processus de sommeil mysql
- 3. Spawning BackgroundWorkers
- 4. Spawning thread utilisateur dans Jetty
- 5. spawning cmd.exe erreur dans vs2008
- 6. Commencer un nouveau processus
- 7. Démarrer un nouveau processus dans une transaction
- 8. Linux C++ s'exécute et communique avec le nouveau processus
- 9. Nouveau processus d'application de Bash Shell
- 10. Création d'un nouveau compte utilisateur pendant le processus d'installation
- 11. Emacs Lisp sous-processus de spawning avec des variables d'environnement personnalisées
- 12. Comment surveiller l'exécution du nouveau processus racine?
- 13. Démarrage d'un nouveau processus avec des arguments
- 14. Démarrage d'un nouveau processus dans un service web asp.net
- 15. Exécuter un nouveau processus via la méthode Appelez dans ClickOnce
- 16. Spawning infini UIImageViews sans collisions de noms
- 17. Exemple Spawning WSGI (approche pratique de WSGI)
- 18. Comment exécuter Spawning avec Django dans un virtualenv?
- 19. Problème dans le processus Exécuter
- 20. Zend Form Decorators Erreur dans le tableau
- 21. Interrogation dans le tableau $ form-> input()
- 22. Entrer dans le nouveau OpenGL
- 23. Nouveau fichier dans le dossier
- 24. Process.Start() ne génère pas le nouveau processus sous le même utilisateur
- 25. comment surveiller le processus dans Mac
- 26. Pourquoi les threads spawning dans le conteneur Java EE sont-ils déconseillés?
- 27. ImpersonateLoggedOnUser et démarrage d'un nouveau processus qui utilise ocx échoue
- 28. Grouper le fichier dans le nouveau dossier?
- 29. Comment capturer l'événement si un nouveau processus (application!) Est démarré?
- 30. Créer un nouveau processus indépendant à partir d'un autre processus C
Pouvez-vous clarifier pour moi pourquoi vous avez besoin du formulaire dans un processus séparé? Cela conduira à des difficultés (pas insurmontables, mais inefficaces) dans le partage d'informations entre le formulaire et le reste de l'application ... Si c'est juste parce que le formulaire va beaucoup de calcul par exemple, avez-vous envisagé le multithread? –
Il est lié à ceci: http://stackoverflow.com/questions/3026294/decompressing-a-very-large-serialized-object-and-managing-memory essentiellement, quand je ferme ma boîte de dialogue, même si je S'assurer que Dispose est appelé, le CPU s'assoit et tourne à 50%. –