2009-09-03 182 views
4

好的我正在创建一个带有插件体系结构的应用程序,并且应用程序可以在没有GUI的情况下运行,换句话说GUI实际上是可选的......并且如果用户决定使用图形用户界面控制台只是隐藏。C#中的控制台和Windows窗体#

我可以通过调用其中一个插件方法在控制台中创建窗体,但是一旦创建了窗口,控制台程序就会一直等待,直到窗口关闭......是否有创建窗体的方法,以便控制台不必等待,它应该继续处理它自己的东西,只是通知gui一些信息?

回答

2

为什么不把窗体应用程序保存为独立的可执行文件并调用process.start()?

例如

Process.Start("c:\yourwindowsformsapplication.exe"); 

你就可以离开控制台应用程序或控制台应用程序内继续其他的工作,一旦你开始了windowsapplication.exe。

并使用远程处理在两个应用程序之间进行通信。

或....

创建一个新的线程和新线程中调用你form.show()

例子:

Form frm=new form(); 
Thread th=new Thread(frm.show); 
th.start(); 
+0

你需要什么的线程? Show()已经是一个非阻塞的调用。 – MusiGenesis 2009-09-03 02:40:45

+0

我猜他的控制台一直在使用它自己的东西,窗体一直在用它自己的东西工作,他想通知窗体... 假设某些处理正在进行,他可以尝试一个线程。 – Josh 2009-09-03 03:04:51

1

您是否正在使用ShowDialog()创建并显示窗体?如果是这样,那就是控制台应用程序正在等待表单关闭的原因。尝试使用Show()来显示表单 - Show()是一个非阻塞调用,它将程序执行返回到下一行。