public void updateTextBox(string msg) { // 有調用需求 if (this.InvokeRequired) { // 建立Dalegate 物件 /* * 建立委派物件(TextBoxDalegate)並委派使用"updateTextBox"方法 */ TextBoxDalegate TBDalegate = new TextBoxDalegate(updateTextBox); // 調用委派的方法 this.Invoke(TBDalegate, msg); } else { int lineCount = ConsoleTextBox.GetLineFromCharIndex(ConsoleTextBox.Text.Length); if (lineCount >= 100) { ConsoleTextBox.Text = ConsoleTextBox.Text.Remove(0, (ConsoleTextBox.Lines[0].Length + Environment.NewLine.Length)); } ConsoleTextBox.Text += msg; ConsoleTextBox.Text += Environment.NewLine; ConsoleTextBox.SelectionStart = ConsoleTextBox.Text.Length; ConsoleTextBox.ScrollToCaret(); } }
/// <summary> /// 初始化 /// </summary> void Initialize() { this.tbDalegate = new TextBoxDalegate(UpdateTextBox); this.msgQ = new Queue <string>(); this.timer = new System.Timers.Timer(); this.timer.AutoReset = false; this.timer.Interval = 100; this.timer.Enabled = true; this.timer.Elapsed += ProcessQueue; logger = new Logger(); logger.SetForm(this); ControlCenter.Instance.Initialize(logger); }