你好我想知道让控制台永远打开的最佳方法是什么?我想要最快的方式,最稳定的方式,基本上是永远保持开放的最佳方式,直到我关闭它。
我最近一直使用下面的代码,但有人说虽然循环不好?或类似的东西,或在其中存储东西是不是很好?我基本上只是希望你的家伙建议总体最佳方法是什么?或者一些最好的方式......
while (true) //in Program.cs in void Main
Console.ReadKey();
答案 0 :(得分:5)
执行一个简单的控制台应用程序,它将一直打开,直到执行结束。如果您关闭控制台,则关闭应用程序。如果您不需要控制台,它将保持打开状态,直到应用程序完成运行(因此没有循环或任何东西),当您准备好使用它时,它仍然会在那里等着您。
编辑: 您可能想要考虑执行Service应用程序。你不会有任何控制台运行,应用程序将站在后面,没有人会看到一个黑匣子和错误关闭它的风险。然后,您可以使用服务面板将其停止。您服务的核心将是一个等待信号的简单线程(玩家连接)。所以你的应用程序24/7运行没有任何问题,可以很容易地关闭。
答案 1 :(得分:1)
我发现循环没问题。我会有一个命令,可以输入以从文本输入关闭窗口。类似的东西:
string s = "";
while (s != "kill")
s = Console.ReadLine();
有些时候while(true)
循环可能很危险,因为它们总会运行,但我觉得while循环很好。我已将此代码用于服务器等。这对我来说从来都不是问题。
答案 2 :(得分:0)
所以在评论中你说:
我希望每周7天每天24小时开放,直到我点击“X”
在这种情况下,请执行以下操作:
Console.WriteLine("Press X to stop");
do
{
while (!Console.KeyAvailable)
{
// Do something
}
} while (Console.ReadKey(true).Key != ConsoleKey.X);
Console.WriteLine("Stopped");
正如其他人指出的那样,while(true)
将是一场表现难堪。
也许(没有足够的信息知道)你想要做的是在循环之前启动一个线程,并在循环之后杀死它。这样你的函数就可以与循环并行运行,但你可以随时控制它(按X键)。要以干净的方式执行此操作,请按照example at the bottom of the page。
进行操作......或蛮力:
Console.WriteLine("Running the process");
System.Threading.Thread workerThread = new System.Threading.Thread(MyFunction);
workerThread.Start();
Console.WriteLine("Press X to stop");
do
{
while (!Console.KeyAvailable)
{
// Do something
}
} while (Console.ReadKey(true).Key != ConsoleKey.X);
workerThread.Abort();
Console.WriteLine("Stopped");