gpt4 book ai didi

c# - 尽管使用 Console.Read(),控制台窗口仍关闭

转载 作者:行者123 更新时间:2023-11-30 18:37:39 26 4
gpt4 key购买 nike

我编写了一个作为标准控制台应用程序运行的 C# 工具。在程序结束时,我使用 Console.Read() 来防止窗口关闭。这适用于我所有同事的 PC,除了一个。他从未看过我的申请。它完成了所有要做的工作,但随后关闭。所有 PC 运行 WinXP。你有什么想法吗?

我实现了一个 try-catch-finally,其中 finally 只包含 Console.Read()

编辑:我添加了一些代码

Console.SetWindowSize(125, 40);
CopyToolBase ctb = null;
try
{
DateTime startTime = DateTime.Now;
TimeSpan duration;

ctb = CopyToolBase.GetInstance(Defines.configPath);
if (null == ctb)
{
throw new KopiertoolException();
}

if (null == ctb.GetNewestVersion())
{
throw new KopiertoolException();
}

if (!ctb.CheckCopy())
{
throw new KopiertoolException();
}

if (!ctb.CopyAndUnzip())
{
throw new KopiertoolException();
}

duration = DateTime.Now.Subtract(startTime);

ctb.PrintSuccess("xxxxxxxx");
ctb.PrintInfo("Gesamtdauer: " + ((duration.Hours == 0) ? "" : string.Format("{0:00} Std ", duration.Hours)) + string.Format("{0:00} Min {1:00} Sek", duration.Minutes, duration.Seconds));

startTime = DateTime.Now;

if (!ctb.StartTask())
{
throw new KopiertoolException();
}

duration = DateTime.Now.Subtract(startTime);

if (duration.Minutes > 1)
{
ctb.PrintInfo("Dauer: " + ((duration.Hours == 0) ? "" : string.Format("{0:00} Std ", duration.Hours)) + string.Format("{0:00} Min {1:00} Sek", duration.Minutes, duration.Seconds));
}
}
catch (KopiertoolException)
{
ctb.WriteToLog();
}
catch (Exception ex)
{
if (ctb == null)
{
Console.WriteLine("xxxxxxxxx");
Console.WriteLine(ex.ToString());
}
else
{
ctb.PrintError("xxxxxxxxx");
ctb.PrintError(ex.ToString());
ctb.WriteToLog();
}
}
finally
{
Console.Read();
}

最佳答案

您是否在CopyToolBase 类的任何部分中使用了DLL 导入方法(或外部库)?

如果你是那么它可能是代码中某处抛出的损坏状态异常,它不会被正常的 try/catch block 捕获,所以可能有异常,只是托管代码不能处理它,别无选择,只能终止进程。

这是一个link说明情况:

我知道这是不可能的,但我想我应该涵盖所有的基础

关于c# - 尽管使用 Console.Read(),控制台窗口仍关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com