为什么Console.Write在笔记本电脑上写了一整行

问题描述 投票:0回答:1

我有时在本地笔记本电脑上工作,有时在远程台式机上工作。

两者具有相同的操作系统和版本:

操作系统名称:Microsoft Windows 10 Enterprise
操作系统版本:10.0.19045 不适用 内部版本 19045

但是,当我运行一个作为控制台应用程序运行的项目时,根据解决方案是在笔记本电脑上还是在台式机上,我会得到不同的结果。

在我运行项目的台式机上,有一个包含以下代码的循环:

  System.Console.Write($"{vbCr}{"".PadLeft(Console.CursorLeft, " "c)}")
  System.Console.Write($"{vbCr}Getting info for table: {tbl.Name}")

导致该行被覆盖(按预期),在我的笔记本电脑上,它实际上是一条写入行(不是我想要的)。

为什么?我该怎么做才能使其在笔记本电脑上正常工作?

vb.net cmd
1个回答
0
投票

多亏了Dai的提示,我才能够解决这个问题。显然 Console.CursorLeft 没有实时更新,通过在写入之前添加

System.Console.Out.Flush()
,它现在可以在我的笔记本电脑上正常运行。两台机器上的缓冲区大小相同。

仍然不太确定为什么会发生这种情况(如果

CursorLeft
为零或其他值,我会期望不同的行为),但它确实解决了我眼前的问题。

© www.soinside.com 2019 - 2024. All rights reserved.