我有一个程序在循环中调用此方法大约100x:
private void writeLog (string text)
{
txtConsole.AppendText(text);
txtConsole.AppendText(System.Environment.NewLine);
Console.WriteLine(text);
Console.WriteLine(System.Environment.NewLine);
}
txtConsole
是标准的多行TextBox。我希望在运行此循环后,txtConsole
和标准控制台都具有相同的内容。我所看到的是标准的控制台乱七八糟。
以下是循环后txtConsole
结束的示例(这是我想要的):
SFB239
Name: FUNC
Family: SBUS
Author:
Load Size: 108
SFB240
Name: DPRAM
Family: SBUS
Author:
Load Size: 112
标准控制台中的输出为:
Author:
SFB54
Name: RALRM
标准控制台中的文本是应该具有的一些部分(但在循环中更早)。一切都是同步调用的,但它几乎列出了控制台被异步写入,并且字符串互相覆盖。
答案 0 :(得分:0)
发现问题,我写入控制台的文本包含许多不可打印的低ASCII字符。通过用String.Empty替换这些字符来清理文本后,它就能正常工作。