You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#控制台应用程序显示控制台窗口前执行例程?

在C#控制台程序中实现控制台窗口显示前运行例程

根据需求不同,有两种可行方案:

方案1:完全隐藏控制台窗口,先执行例程再显示

如果需要在用户看不到控制台窗口的情况下完成预执行逻辑,可通过修改项目输出类型+手动创建控制台窗口实现:

  1. 修改项目属性:右键项目 → 应用程序 → 输出类型,选择「Windows应用程序」
  2. 在代码中调用Windows API手动创建控制台窗口,示例代码如下:
using System;
using System.Runtime.InteropServices;

namespace ConsolePreRunDemo
{
    class Program
    {
        [DllImport("kernel32.dll")]
        private static extern bool AllocConsole();

        static void Main(string[] args)
        {
            // 这里放置需要提前运行的例程
            ExecutePreConsoleTasks();

            // 手动创建并显示控制台窗口
            AllocConsole();
            Console.WriteLine("预执行任务完成,控制台已就绪");
            Console.ReadLine();
        }

        private static void ExecutePreConsoleTasks()
        {
            // 示例:模拟耗时初始化操作(如加载配置、初始化数据库连接)
            System.Threading.Thread.Sleep(3000);
        }
    }
}

方案2:允许控制台窗口提前显示,但在输出内容前执行例程

如果不介意控制台窗口提前显示(仅空白无内容),直接将预执行逻辑放在Main方法最开头即可,确保在任何控制台输出代码之前执行:

using System;

namespace ConsolePreRunDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 先执行预运行例程
            LoadAppSettings();
            InitializeServices();

            // 之后再进行控制台交互
            Console.WriteLine("初始化完成,开始程序逻辑");
            Console.ReadLine();
        }

        private static void LoadAppSettings()
        {
            // 读取应用配置文件
        }

        private static void InitializeServices()
        {
            // 初始化依赖服务
        }
    }
}

注意事项

  • 方案1中,必须调用AllocConsole()才能正常使用Console类的输入输出方法;
  • 若预执行例程耗时较长,方案1的用户体验更优,不会出现长时间空白控制台的情况。

内容的提问来源于stack exchange,提问作者jocoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:16:10