等待用户输入 C# 控制台应用程序的设置时间

2023-12-24

对于控制台应用程序,我需要知道在继续应用程序的“自动运行”部分之前,如何等待用户输入一个或一组按键设定的时间(大约 10 秒)。

这让我很困扰,因为我不太清楚计时器是如何工作的,或者 threading.sleep,我应该使用什么?一整天都在谷歌搜索。

一些伪代码:

1.应用程序打开

2.app 等待 10 秒让用户按下“k”键。

3.如果用户点击k,则转到4。如果用户没有点击k,则转到5。

4.运行一个函数(打开一个表单)

5.运行一个函数(做某事)

我敢打赌这很简单,我只是不明白发生了什么。


以下是 C# 控制台应用程序的一些示例代码。它不使用计时器,而是使用睡眠。它可能比基于计时器的代码更容易理解。

        static void openForm()
        {
            Console.WriteLine("Form opened!");
        }

        static void doSomething()
        {
            Console.WriteLine("Do something!");
        }

        static void Main(string[] args)
        {
            bool optionForm = false;
            int seconds = 1;

            Console.Write("Press 'k' to open form");

            while (true)
            {                
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo c = Console.ReadKey(true);
                    if (c.Key == ConsoleKey.K)
                    {                        
                        optionForm = true;
                        break;
                    }
                }

                System.Threading.Thread.Sleep(1000);

                if (seconds++ > 10)
                    break;

                Console.Write('.');
            }

            Console.WriteLine();

            if (optionForm)
                openForm();
            else
                doSomething();

            Console.ReadKey();
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

等待用户输入 C# 控制台应用程序的设置时间 的相关文章

随机推荐

  • 如何实现数据表“分组依据”?

    我想为我的数据表实现 分组依据 有人有什么建议吗 update 时间 2019 03 09 标签 c net 2 0 您可以在 System Data DataSetExtensions 程序集中使用 linq 扩展 DataTable t
  • 如何找到距直线给定垂直距离处的点?

    我在窗口中画了一条线 然后让用户拖动它 因此 我的线由两点定义 x1 y1 和 x2 y2 但现在我想在线条的末端绘制 帽子 即在每个端点处绘制短垂直线 上限的长度应为 N 像素 因此 要在端点 x1 y1 处绘制 帽 线 我需要找到形成垂
  • react-native-reanimated 不接受以度为单位的旋转值

    我正在学习 reanimated 因为它在 UI 线程上工作 并且我想实现旋转动画 以度数旋转 如 45 度 不起作用并提示错误 那么如何在react native reanimation v1 version 1 中实现旋转动画呢 也许你
  • 无法使用 mongodb 插件版本 3.0.3 运行 Grails 应用程序

    我正在尝试将我的 mongodb 插件从 2 0 1 升级到 3 0 3 但是我不断收到以下错误 java lang NoClassDefFoundError com mongodb AggregationOptions at java l
  • spring security如何检索用户名[重复]

    这个问题在这里已经有答案了 可能的重复 使用 Spring Security 时 获取 bean 中当前用户名 即 SecurityContext 信息的正确方法是什么 https stackoverflow com questions 2
  • “奇怪的重复模板模式”的实际用途

    的一些实际用途是什么 奇怪的重复模板模式 http en wikipedia org wiki Curiously Recurring Template Pattern 这 计算类 http en wikipedia org wiki Cu
  • 如何重置 powershell 颜色

    我更改了 powershell 的颜色 现在我无法更改输入文本的颜色 总是yellow 我改变了背景的颜色和文字的颜色 背景颜色已正确更改 但显示文本中的颜色仍然是黄色 我可以做一些事情来重置颜色吗 方法一 CLI 命令 此 CLI 重置控
  • AngularJS reloadOnSearch 不起作用

    执行搜索并导航离开后 我希望用户能够返回到搜索页面 通过在浏览器中返回 并保留当前的搜索参数 我开始意识到 为了做到这一点 必须更新页面 url 以包含有关页面的数据 通过研究 我发现我可以使用更新位置 location并在使用进行更改时强
  • INSERT 触发器带有“ON CONFLICT DO NOTHING”

    我有一个INSERTPostgres 9 5 中的语句 但由于关键冲突 INSERT 有时实际上不会发生 我已经设置ON CONFLICT DO NOTHING在插入 If the INSERT发生了 那么触发器当然会运行 但如果INSER
  • Haskell 版本的 Idris !-表示法(爆炸表示法)

    我最近有幸学习了一些 Idris 我发现非常方便的一件事是 符号 https idris2 readthedocs io en latest tutorial interfaces html highlight do 20notation
  • bash PS1 提示符中的短日期

    您可以在 PS1 配置中使用 d 来显示长日期 即 5 月 18 日星期二 但我怎样才能让它以 18 05 2012 等格式显示呢 尝试包括 D d m Y 您可以使用以下支持的任何时间格式strftime 3
  • 我可以在 Windows 命令行中测试 tesseract ocr 吗?

    我是 tesseract OCR 新手 我尝试将图像转换为 tif 并运行它以查看在 Windows 中使用 cmd 的 tesseract 的输出 但我做不到 你能帮助我吗 将使用什么命令 这是我的示例图片 最简单的 tesseract
  • ocaml 任何类型匹配

    我正在尝试编写一个可以选择将函数作为参数的函数 let xxx extractor fun a gt a yyy 这最终有类型 val xxx extractor a gt a gt c gt 我的目的是让提取器成为一个从结构中提取信息的函
  • 为什么 forEach 应该优于常规迭代器?

    我正在读书爱彼迎 JavaScript 指南 https github com airbnb javascript 有一个特别的说法 说 不要使用迭代器 更喜欢 JavaScript 的高阶函数 而不是像 for in 或 for of 这
  • 查找 imapi2 com 对象的 uuid/headers 或让 __uuidof 在 mingw 上工作

    我正在尝试从 mingw 项目访问 imapi2 com 对象 我试图遵循视觉工作室的例子 我在 Microsoft SDK 7 1 中找到了 imapi2 头文件 但它们似乎没有 uuid 我看到的示例是在创建对象时使用 uuidof 查
  • 为什么我的广播接收器收到 ACTION USER_PRESENT 两次?

    我的应用程序需要在用户解锁屏幕时进行祝酒 所以我注册了一个BroadcastReceiver获取意图ACTION USER PRESENT在清单中 如下所示
  • 将 HuggingFace Trainer 与 Ray Tune 结合使用时,“无法 pickle _thread.RLock 对象”

    我尝试使用TrainerHuggingFace 变压器中的函数来训练模型并使用ray tune用于超参数搜索 我可以在 Google Colab 中运行代码而不会出现错误 但是当我使用远程计算机通过 ssh 运行代码时 会出现错误 Trac
  • D3.js:使用元素位置而不是鼠标位置来定位工具提示?

    我正在使用 D3 绘制散点图 我想当用户将鼠标悬停在每个圆圈上时显示工具提示 我的问题是我可以附加工具提示 但它们是使用鼠标事件定位的d3 event pageX and d3 event pageY 因此它们在每个圆上的位置不一致 相反
  • 如何更改返回的 Google 地图方向上的虚线颜色

    使用 Google 路线服务 我获取两个位置之间的交通结果并将结果显示在地图上 我想更改两个位置之间的线条颜色 我正在使用 google maps Polyline 来更改主线颜色 但有些部分的线是虚线的 以显示您必须步行的位置 但不会更改
  • 等待用户输入 C# 控制台应用程序的设置时间

    对于控制台应用程序 我需要知道在继续应用程序的 自动运行 部分之前 如何等待用户输入一个或一组按键设定的时间 大约 10 秒 这让我很困扰 因为我不太清楚计时器是如何工作的 或者 threading sleep 我应该使用什么 一整天都在谷