Нерест формы в новом процессе - PullRequest
0 голосов
/ 16 июня 2010

Первоначально я создал форму окна, которая будет диалоговым окном основной формы моих проектов.Теперь диалог становится настолько сложным, что его нужно запустить в своем собственном процессе.Есть ли способ сделать это в коде или мне нужно создать новый проект и связать с ним мои файлы?

Ответы [ 2 ]

3 голосов
/ 16 июня 2010

Я подвергаю сомнению предпосылку здесь - нет никакой причины обязательно начинать новую "форму" в отдельном процессе. Однако, если форма становится такой сложной, я бы порекомендовал упростить ее, если только по причинам, кроме удобства использования.

При этом вы всегда можете запустить новый процесс с помощью Process.Start в коде. Если вы хотите, чтобы он был в том же проекте, но запускал отдельный процесс, вы можете запустить исполняемый exe-файл с аргументом командной строки, который позволяет вам выбрать, какая «форма» загружается при запуске.

1 голос
/ 16 июня 2010

Вам потребуется настроить уровень связи (вероятно, лучшим вариантом будет WCF с использованием именованных каналов).

Но я бы серьезно усомнился, зачем вам нужен новый процесс для вашей формы?Убедитесь, что все, что вы делаете в своей форме, выполняется в отдельном потоке.Таким образом, вы можете открыть десятки форм, но ваше приложение останется очень отзывчивым.

Это не лучшее решение, но если вы пытаетесь избежать перезаписи, вызов Application.DoEvents вызовет очередь сообщенийи вернем вам некоторую отзывчивость, если в вашем пользовательском интерфейсе происходит множество обновлений.Тем не менее, помощь с помощью ремешка для вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...