delegate void SetTextBoxTextCallBack(string strReceiveData); //跨线程操作TextBox控件委托
/// <summary>
/// 更新文本框的值
/// </summary>
/// <param name="strReceiveData"></param>
private void UpdatetbSendAndReceiveLogText(string strReceiveData)
{
if (this.tbSendAndReceiveLog.InvokeRequired)
{
SetTextBoxTextCallBack m_SetTextBoxTextCallBack = new SetTextBoxTextCallBack(UpdatetbSendAndReceiveLogText);
this.BeginInvoke(m_SetTextBoxTextCallBack, new object[] { strReceiveData });
}
else
{
if (strReceiveData != "\r\n")
this.tbSendAndReceiveLog.Text += DateTime.Now.ToString("MM月dd日 HH时mm分ss秒fff ", DateTimeFormatInfo.InvariantInfo) + strReceiveData;
else
this.tbSendAndReceiveLog.Text += strReceiveData;
this.tbSendAndReceiveLog.SelectionStart = this.tbSendAndReceiveLog.Text.Length;
this.tbSendAndReceiveLog.SelectionLength = 0;
this.tbSendAndReceiveLog.ScrollToCaret();
}
}我在程序中线程池中放了一个死循环,循环执行一些任务,中间会频繁更改一个textbox的值 使用上面的委托,发现CPU占用会到百分之50 然后直接就卡住了 ,求助
及时释放资源