2011-01-05 2 views
1

У меня возникли проблемы с созданием консольного приложения с несколькими окнами. В настоящее время основное окно консоли моего приложения используется для сбора пользовательского ввода и вывода вывода.Создать отдельное окно из консольного приложения

Значительная часть этого выхода поступает из отдельного потока, когда поступают данные в реальном времени. Мне было интересно, есть ли способ отделить мое приложение от двух окон, где второе окно было либо консольным, либо любым другое окно, которое могло бы отображать текст входящих строк ... В частности, главное окно консоли было бы там, где команды ввода пользователя и т. д., а второе окно отображало, на что в данный момент работает система. Это второе окно может быть полностью готово.

Любые предложения были бы высоко оценены! Я бы опубликовал код, но у меня нет ничего важного (что я могу придумать) для публикации ....

+0

Время начала игры с Winforms или WPF. –

ответ

2

Это будет сложно сделать.

Вот ответ на подобный вопрос: Can you have multiple .net Consoles (as in Console.Writeline)

Если вы действительно хотите сделать это, вы можете найти здесь логику: http://www.codeproject.com/KB/cpp/MultipleConsoles.aspx

Maby Лучше будет начать новый процесс (консольное приложение) и общаться между ними через IPC (Interprocess communication) - как именованные каналы.

Подробнее о IPC вы можете найти: http://www.infoq.com/news/2008/01/wcf-comm-options

+0

Я предполагаю, что мне интересно, если я могу сделать это со вторым окном * not *, являющимся консолью, и если есть другой параметр (то есть какое-то окно WPF, которое считывает данные и т. Д.) – keynesiancross

+0

I отредактировал мой ответ ... вы также можете ухаживать за другими опциями – HABJAN

0

Это, вероятно, проще просто всплывающую форму Windows с TextBox, содержащей данные, которые вы хотите показать. Вы можете просто начать новый поток и вызвать Form.ShowDialog(), чтобы получить форму для показа.

+0

Если я начинаю новый поток, это требует другого процессора ... (Это может вызвать мое невежество ...). В настоящее время я уже запускаю BackgroundWorker, так что это конфликтует с попыткой запустить другой поток? – keynesiancross

Смежные вопросы