2011-01-05 4 views
1

Ich habe ein bisschen Probleme beim Versuch, eine Multi-Fenster-Konsolenanwendung zu erstellen. Momentan wird das Hauptkonsolenfenster meiner Anwendung verwendet, um Benutzereingaben und Bildschirmausgaben zu sammeln.Erstellen Sie ein separates Fenster von der Konsolenanwendung

Ein Großteil dieser Ausgabe kommt von einem separaten Thread, da Live-Daten kommen. Ich fragte mich, ob es eine Möglichkeit für mich gibt, meine Anwendung in zwei Fenster zu trennen, wobei das zweite Fenster entweder ein Konsolenfenster oder irgendein anderes war eine andere Art von Fenster, das den Text der eingehenden Zeichenfolgen anzeigen könnte ... Insbesondere würde das Hauptkonsolenfenster dort sein, wo der Benutzer Befehle eingibt usw., und das zweite Fenster zeigt an, woran das System gerade gearbeitet hat. Dieses zweite Fenster könnte vollständig gelesen werden.

Alle Vorschläge würden sehr geschätzt werden! Ich würde Code schreiben, aber ich habe wirklich nichts Relevantes (das kann ich mir vorstellen) zu posten ....

+0

Höchste Zeit, um mit Winforms oder WPF zu spielen. –

Antwort

2

Das wird schwer zu tun sein.

ist hier Antwort für ähnliche Frage: http://www.codeproject.com/KB/cpp/MultipleConsoles.aspx

Maby besserer Ansatz einen anderen Prozess (Konsolenanwendung) und kommunizieren, um zu starten: Can you have multiple .net Consoles (as in Console.Writeline)

Wenn Sie es wirklich tun wollen, können Sie Logik finden Sie hier zwischen ihnen durch IPC (Interprozesskommunikation) - wie Named Pipes.

Mehr über IPC finden Sie: http://www.infoq.com/news/2008/01/wcf-comm-options

+0

Ich denke, was ich mich wundere, ist, wenn ich dies mit dem zweiten Fenster * not * als eine Konsole tun kann, und wenn es eine andere Option gibt (zB eine Art WPF-Fenster, das die Daten etc. liest.) – keynesiancross

+0

I bearbeitete meine Antwort ... Sie können auch andere Optionen verwenden – HABJAN

0

Es ist wahrscheinlich einfacher, nur ein Windows Form mit einem Text Pop-up-Daten, die Sie anzeigen möchten enthält. Sie können einfach einen neuen Thread starten und Form.ShowDialog() aufrufen, um das Formular zur Anzeige zu bringen.

+0

Wenn ich einen neuen Thread starte, benötigt das eine andere CPU ... (Dies kann meine Unwissenheit offen legen ...). Ich führe gerade einen BackgroundWorker aus, also würde das einen Konflikt mit dem Versuch, einen anderen Thread auszuführen, haben? – keynesiancross