【问题标题】:Create separate window from Console Application从控制台应用程序创建单独的窗口
【发布时间】:2011-06-04 06:58:46
【问题描述】:

我在尝试创建多窗口控制台应用程序时遇到了一些麻烦。目前,我的应用程序的主控制台窗口用于收集用户输入和显示输出。

当实时数据进入时,大部分输出来自一个单独的线程。我想知道是否有办法将我的应用程序分成两个窗口,其中第二个窗口是控制台窗口,甚至是任何其他窗口一种可以显示传入字符串文本的窗口......特别是,主控制台窗口将是用户输入命令等的地方,第二个窗口显示系统当前正在处理的内容。这第二个窗口可能完全是只读的。

任何建议将不胜感激!我会发布代码,但我真的没有任何相关的(我能想到的)发布......

【问题讨论】:

  • 是时候开始使用 Winforms 或 WPF。

标签: c# multithreading console-application multi-window


【解决方案1】:

使用包含您希望显示的数据的文本框弹出一个 Windows 窗体可能更容易。您可以简单地启动一个新线程并调用 Form.ShowDialog() 来显示表单。

【讨论】:

  • 如果我启动一个新线程,是否需要另一个 CPU...(这可能暴露我的无知...)。我目前已经在运行一个 BackgroundWorker,那么这会与尝试运行另一个线程发生冲突吗?
【解决方案2】:

这将很难做到。

这里是类似问题的答案:Can you have multiple .net Consoles (as in Console.Writeline)

如果你真的想做,可以在这里找到逻辑:http://www.codeproject.com/KB/cpp/MultipleConsoles.aspx

也许更好的方法是启动另一个进程(控制台应用程序)并通过 IPC(进程间通信)在它们之间进行通信 - 就像命名管道一样。

有关 IPC 的更多信息,您可以找到:http://www.infoq.com/news/2008/01/wcf-comm-options

【讨论】:

  • 我想我想知道的是,如果我可以在第二个窗口 not 作为控制台的情况下执行此操作,以及是否有其他选项(即某种读取数据等的 WPF 窗口。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多