gpt4 book ai didi

c# - 控制台应用程序在鼠标单击时卡住

转载 作者:太空狗 更新时间:2023-10-30 00:05:00 27 4
gpt4 key购买 nike

我有一个非常简单的 C# 控制台应用程序,它显示一些文本并循环等待输入,直到按下转义键或超时期限结束。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;

namespace SampleApp
{
public static class Program
{
public static void Main (string [] args)
{
var key = new ConsoleKeyInfo();
var watch = Stopwatch.StartNew();
var timeout = TimeSpan.FromSeconds(5);

Console.WriteLine("Press escape to return to the previous screen...");
Console.WriteLine();

do
{
Console.WriteLine("This screen will automatically close in " + ((timeout + TimeSpan.FromSeconds(1)) - watch.Elapsed).ToString(@"hh\:mm\:ss") + ".");

if (Console.KeyAvailable) { key = Console.ReadKey(true); }
else { Thread.Sleep(TimeSpan.FromSeconds(0.10D)); }
}
while ((key.Key != ConsoleKey.Escape) && (timeout > (watch.Elapsed - TimeSpan.FromSeconds(0.5D))));

watch.Stop();
}
}
}

这工作正常,但如果我用鼠标单击控制台应用程序(例如获得焦点),屏幕上的所有事件都会卡住,直到我右键单击或按退出键。在此期间,控制台的标题也会更改为 "Select AppName",假设 "AppName" 是之前的标题。

如果我先右键单击控制台,do {...} while (); 循环似乎变得疯狂并打印出很多额外的行。

由于我不知道控制台的这种行为,所以不确定要问什么。这是可以预料的吗?如果是这样,我可以改变这种行为吗?如果没有,我们将不胜感激任何解决方法的建议。

最佳答案

问题已通过 Hans 的上述评论解决。

在我看来,您已经以某种方式激活了控制台窗口的“标记”和“粘贴”命令。通常通过系统菜单激活(Alt + 空格键、编辑、标记/粘贴)。当然,这与这段代码没有任何关系。

显然,出于某种原因,在控制台默认设置中设置了快速编辑模式(Alt + 空格键、默认值、选项、编辑选项、快速编辑模式)。取消选中即可解决问题。

关于c# - 控制台应用程序在鼠标单击时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884406/

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