控制台中的颜色因为这一行代码而混乱不堪



所以最近我一直在制作控制台MIDI播放器,遇到了一个巨大的问题。仅仅因为这一行代码,颜色就无法正常工作:

Console.SetCursorPosition(0,0);

每当我删除这行代码时,颜色似乎都能正常工作。下面是我的意思的一个例子:

用";安慰SetCursorPosition(0,0(";

没有";安慰SetCursorPosition(0,0(";

哦,是的,顺便说一句,这是处理所有打印和颜色编码的代码:

var noteDisplay = new Thread(() => {
Console.Clear();
while (!midiEnded) {
Console.MoveBufferArea(0, 0, keyboardWidth, Console.WindowHeight - 1, 0, 1);
Console.WriteLine(string.Join("", notes.ToArray()));
Thread.Sleep((int)(4*(1/playbackSpeed)));
Console.SetCursorPosition(0,0);
}
});
//...
public static string EncodeToRGB(List<int> rgbList) {
int res1 = 0;
for (int i = 0; i < rgbList.Count; i++) res1 = (res1 << 8) | rgbList[i];
return res1.ToString("X");
}

我发现的最奇怪的事情是:奇怪的控制台行为

说真的,我不知道为什么会发生这种事。你们知道为什么会发生这种事吗?

我的建议是简单地使用彩色控制台。我已经广泛使用了它,它给我带来了零问题。

最新更新