gpt4 book ai didi

c# - 在 Console.ReadLine 期间使用 Console.WriteLine

转载 作者:行者123 更新时间:2023-11-30 21:07:02 28 4
gpt4 key购买 nike

我有以下代码:

bool loop = true;
LongbowWorkerThread Worker = new LongbowWorkerThread();
Thread w = new Thread(Worker.UpdateChannel);
w.Start();

string inText = string.Empty;

while (loop) {
inText = Console.ReadLine();
Console.WriteLine(inText);
}

此时,工作线程只是每 5000 毫秒回显一个字符串。问题在于打印的字符串与用户已经输入的文本重叠,这并不理想而且看起来很丑(尽管它不影响 Console.ReadLine 返回的实际数据。)

有没有办法防止这种重叠?

最佳答案

您可以使用 Console.CursorLeftConsole.CursorRight用于记录光标位置的属性,移动它,输出文本,然后将其移回。

编辑:这是我刚刚拼凑的一个示例,基于我对它进行的 60 秒测试,效果很好。

        int fooCursorTop = Console.CursorTop + 1;

var timer2 = new System.Timers.Timer(1000);
timer2.Elapsed += new System.Timers.ElapsedEventHandler(delegate
{
int tempCursorLeft = Console.CursorLeft;
int tempCursorTop = Console.CursorTop;
Console.CursorLeft = 0;
Console.CursorTop = fooCursorTop;
Console.WriteLine("Foo");
Console.CursorLeft = tempCursorLeft;
Console.CursorTop = tempCursorTop;
fooCursorTop++;
});
timer2.Start();

string input = string.Empty;
while (input != "quit")
{
input = Console.ReadLine();
Console.CursorTop = fooCursorTop;
Console.WriteLine(input);
fooCursorTop += 2;
}

关于c# - 在 Console.ReadLine 期间使用 Console.WriteLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748252/

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