具有多个命令提示输出的表单

时间:2015-12-08 22:42:32

标签: c# winforms command-line

我们现在有一个为多个数据库运行的命令行应用程序。 每个数据库都有一个单独的线程在这些线程中,应用程序会执行一些console.write()。我们希望将它们放入带有选项卡的表单应用程序中,每个选项卡都有不同的数据库(和线程)。

是否可以将console.write()输出到特定选项卡,以便我们知道哪个数据库输出了代码,或者我们需要重写所有代码?我们不能这样做,因为代码在多个地方使用。

2 个答案:

答案 0 :(得分:2)

根据您当前将输出与逻辑隔离的程度,您可以在某种程度上保留原始应用程序的一层并仅重写输出部分(实际上,执行您刚刚建议的操作:使command.write()转而转储到形式)。

我相信你之后会在每个标签中显示多行文本框,只显示日志输出,对吗?

您可以将command.write()替换为something like this extension method来帮助您。您只需传入正确的文本框控件,并为其指定要记录的行,然后将其添加到文本框中。

现在要解决的另一个问题是,在GUI驱动的应用程序中,您不应该只是阻塞/等待主线程上的数据库内容,否则它就会变得无法响应。因此,请确保将逻辑移动到其他位置。

答案 1 :(得分:0)

你如何开始你的节目?也许你可以创建一个应用程序,为你的每个程序运行一个'Process'实例并重定向输出。如果你这样做是异步的,那么应该可以捕获所有的输出。