【问题标题】:Console and Windows Forms in C#C# 中的控制台和 Windows 窗体
【发布时间】:2009-09-03 02:08:52
【问题描述】:

好的,我正在创建一个具有插件架构的应用程序,该应用程序可以在没有 GUI 的情况下运行,换句话说,GUI 确实是可选的......如果用户决定使用 GUI,控制台就会被隐藏.

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

【问题讨论】:

    标签: c# winforms multithreading gtk#


    【解决方案1】:

    为什么不将 Windows 窗体应用程序保留为单独的可执行文件并调用 process.start() ?

    例如

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

    启动 windowsapplication.exe 后,您可以退出控制台应用程序或继续控制台应用程序中的其他工作。

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

    或者....

    创建一个新线程并在新线程中调用您的 form.show()

    例子:

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

    【讨论】:

    • 你需要线程做什么? Show() 已经是一个非阻塞调用。
    • 我猜他的控制台一直在使用它自己的东西,而表单一直在使用它自己的东西,他想通知表单......假设他的表单正在进行一些处理,他可以试一试。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      相关资源
      最近更新 更多