我正在开发一个控制台应用程序,它启动了一个相当长时间的运行过程(2-3分钟)。有哪些选项可用于显示进度,甚至只是写一个“。”每隔几秒进行一次屏幕,以便用户知道应用程序没有停止响应?我是桌面开发的新手,所以请耐心等待。谢谢!
答案 0 :(得分:1)
你有(至少)3种方法:
AutoResetEvent
创建一个布尔值,让控制台编写器线程重复等待事件,当app进行进度时Set()事件。完成后,在Join()之前将boolean设置为true并再次设置Set()。其中的高级部分是知道报告进展的部分。答案 1 :(得分:0)
最简单的方法是,如果您的应用程序具有增量循环,那么您可以在控制台上放置一个简单的句点。不好,但它确实表明“我还活着”。
但是这种方法可能导致过多的信息(太多的字符进入控制台)或者太少,因为你会陷入一些没有真正负责的代码。
所以,也许你可以重用的更好的方法是创建一个在1秒钟内打勾的线程中运行的控制台用户类。它可以使用退格和好旧| / | / - 序列给人一种旋转的印象。它还可以检查按键以允许用户退出。
根据用户的性质,另一个选择是使用 NLog 等日志框架。这样,您的实现是独立于UI的,您可以在运行时在控制台中,从另一台计算机上查看或多或少的详细信息。