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

C#如何阻止控制台应用程序在输入回车后自动关闭

C# 控制台程序多轮输入自动关闭问题解决方案

问题根因

C# 控制台应用默认会顺序执行Main方法内的全部代码,所有代码执行完成后进程会自动终止。你遇到的单次输入回车后程序退出的问题,本质是代码仅包含单次输入接收逻辑,后续没有保持进程运行、等待下一次输入的相关逻辑。

可行解决方案

方案1:无限循环监听输入(最常用,适配多轮交互场景)

通过死循环持续监听用户输入,直到用户触发指定退出条件后再终止程序,代码示例如下:

using System;

namespace ConsoleAppDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("程序已启动,输入exit可退出");
            // 循环保持进程运行,持续接收输入
            while (true)
            {
                // 接收用户输入
                string input = Console.ReadLine();
                
                // 退出逻辑,可根据你的需求修改触发条件
                if (input?.Trim().ToLower() == "exit")
                {
                    Console.WriteLine("程序即将退出");
                    break;
                }
                
                // 这里替换为你自己的业务处理逻辑
                Console.WriteLine($"已接收输入:{input}");
            }
        }
    }
}

方案2:指定次数的多轮输入

如果只需要固定次数的输入,可使用有限次循环实现:

// 示例:支持3轮输入
for (int i = 0; i < 3; i++)
{
    Console.WriteLine($"请输入第{i+1}轮内容:");
    string input = Console.ReadLine();
    // 业务逻辑处理
    Console.WriteLine($"第{i+1}轮输入处理完成");
}
// 所有轮次处理完成后挂住程序,避免直接退出
Console.WriteLine("所有输入处理完成,按回车退出");
Console.ReadLine();

注意事项

  • 不要将输入接收逻辑写在循环结构外,否则只会执行一次输入采集
  • 如果程序包含异步业务逻辑,需等待异步任务执行完成后再进入下一轮输入监听,避免逻辑顺序异常
  • 若需要同时运行后台任务和响应输入,可将输入监听逻辑放入独立的后台线程执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:02