我们现在有一个为多个数据库运行的命令行应用程序。
每个数据库都有一个单独的线程在这些线程中,应用程序会执行一些console.write()
。我们希望将它们放入带有选项卡的表单应用程序中,每个选项卡都有不同的数据库(和线程)。
是否可以将console.write()
输出到特定选项卡,以便我们知道哪个数据库输出了代码,或者我们需要重写所有代码?我们不能这样做,因为代码在多个地方使用。
答案 0 :(得分:2)
根据您当前将输出与逻辑隔离的程度,您可以在某种程度上保留原始应用程序的一层并仅重写输出部分(实际上,执行您刚刚建议的操作:使command.write()
转而转储到形式)。
我相信你之后会在每个标签中显示多行文本框,只显示日志输出,对吗?
您可以将command.write()
替换为something like this extension method来帮助您。您只需传入正确的文本框控件,并为其指定要记录的行,然后将其添加到文本框中。
现在要解决的另一个问题是,在GUI驱动的应用程序中,您不应该只是阻塞/等待主线程上的数据库内容,否则它就会变得无法响应。因此,请确保将逻辑移动到其他位置。
答案 1 :(得分:0)
你如何开始你的节目?也许你可以创建一个应用程序,为你的每个程序运行一个'Process'实例并重定向输出。如果你这样做是异步的,那么应该可以捕获所有的输出。