while (true)
{
if (!Console.KeyAvailable)
{
continue;
}
var input = Console.ReadKey(true);
if (input.Modifiers != ConsoleModifiers.Control)
{
continue;
}
if (input.Key == ConsoleKey.S)
{
Server?.Dispose();
}
}

Console.ReadKey会阻塞直到有按键输入,所以我认为你不需要使用if(!Console.KeyAvailable) continue;来进行判断。 - Maximilian Gerhardt