using System.Windows.Forms;
class TextBoxWriter : TextWriter
{TextBox textBox;
delegate void WriteFunc(string value);
WriteFunc write;
WriteFunc writeLine;
public TextBoxWriter(TextBox textBox)
{
this.textBox = textBox;
write = Write;
writeLine = WriteLine;
}
// 使用UTF-16避免不必要的编码转换
public override Encoding Encoding
{
get { return Encoding.Unicode; }
}
// 最低限度需要重写的方法
public override void Write(string value)
{
if (textBox.InvokeRequired)
textBox.BeginInvoke(write, value);
else
textBox.AppendText(value);