gpt4 book ai didi

c# - 如何保持 .NET 控制台应用程序运行?

转载 作者:IT王子 更新时间:2023-10-29 03:36:46 27 4
gpt4 key购买 nike

考虑一个在单独线程中启动某些服务的控制台应用程序。它所需要做的就是等待用户按 Ctrl+C 将其关闭。

以下哪项是更好的方法?

static ManualResetEvent _quitEvent = new ManualResetEvent(false);

static void Main() {
Console.CancelKeyPress += (sender, eArgs) => {
_quitEvent.Set();
eArgs.Cancel = true;
};

// kick off asynchronous stuff

_quitEvent.WaitOne();

// cleanup/shutdown and quit
}

或者这个,使用 Thread.Sleep(1):

static bool _quitFlag = false;

static void Main() {
Console.CancelKeyPress += delegate {
_quitFlag = true;
};

// kick off asynchronous stuff

while (!_quitFlag) {
Thread.Sleep(1);
}

// cleanup/shutdown and quit
}

最佳答案

您总是希望避免使用 while 循环,尤其是当您强制代码重新检查变量时。它会浪费 CPU 资源并降低程序速度。

我肯定会说第一个。

关于c# - 如何保持 .NET 控制台应用程序运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586612/

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