Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Application.Exit在Application.Run之后运行';行不通_C#_Winforms - Fatal编程技术网

C# Application.Exit在Application.Run之后运行';行不通

C# Application.Exit在Application.Run之后运行';行不通,c#,winforms,C#,Winforms,上下文:我尝试创建的应用程序最初不显示表单,只显示一个打开的文件对话框。选择文件后,应用程序可以退出或打开表单 调用application.Run()后关闭应用程序时遇到问题。下面的示例不会生成自毁的应用程序 static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] sta

上下文:我尝试创建的应用程序最初不显示表单,只显示一个打开的文件对话框。选择文件后,应用程序可以退出或打开表单

调用application.Run()后关闭应用程序时遇到问题。下面的示例不会生成自毁的应用程序

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        var context = new Context();
        Application.Run(context);
        Console.Beep();
    }
}

class Context : ApplicationContext
{
    public Context()
    {
        Application.Exit();
    }
}
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var context=新上下文();
运行(上下文);
Console.Beep();
}
}
类上下文:ApplicationContext
{
公共上下文()
{
Application.Exit();
}
}
另一方面,在打开表单之前,我需要做哪些准备?我是否需要调用Application.Run才能显示表单

非常感谢!XOXO

var context = new Context();

使用此语句,应用程序执行application.Exit();然后执行语句Application.Run。这可能是您可以尝试将退出逻辑移动到新方法的原因:

class Context : ApplicationContext 
{ 
  public void Exit() 
  { 
    Application.Exit(); 
  } 
} 
并拥有
应用程序。需要时运行
调用
context.Exit()


原始方法的问题在于,您将退出逻辑放置在
上下文
的构造函数中,这意味着每次创建
上下文
对象时,您都有可能退出程序(对于您发布的代码,这是确定的)。相反,让
Context
捕获所有相关(上下文)信息,并在创建显式方法调用后根据该信息决定退出。

但是在这段代码中,您在
Run()
之前调用了
exit()
。您是对的。那么,如何让exit调用在run调用之后运行呢?我可以向Application.Run()执行的消息循环发送exit调用吗?