我想知道是否有更有效的方法来修改控制台中的文本。例如:如果我正在跟踪已发生的事件数量,我将打印
0 events have occurred
随着事件的发生,我想增加那个 0。
目前我正在以一种非常丑陋的方式做到这一点:使用 String 或 Stringbuilder 跟踪打印到控制台的所有内容,如果我需要进行任何更改,请更改字符串,清除控制台,将字符串打印到控制台。除了可能效率不高之外,当在短时间内进行太多更改时,它会以丑陋的方式显示,导致控制台“闪烁”。
提前致谢。
诀窍是使用回车代码。这基本上将光标返回到同一行的开头。这与回车 + 换行 (vbCrLf) 不同,后者将光标置于下一行的开头。
在 VB 和 C# 中执行此操作的方法略有不同。
VB:使用 vbCr 代码。
C#:使用 \r 代码。
这是一些示例代码:
VB:
For i = 1 To 100
Console.Write("Processing...{0}% complete " & vbCr, i)
System.Threading.Thread.Sleep(100)
Next
C#:
for (int i = 1; i <= 100; i++)
{
Console.Write("Processing... {0}% complete\r", i);
System.Threading.Thread.Sleep(100);
}