频繁跨线程访问控件消耗CPU过多资源怎么办

sxiaohui8709253 2010-08-20 09:58:06

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 然后直接就卡住了 ,求助
...全文
190 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-08-20
  • 打赏
  • 举报
回复
如果CPU限制,多线程操作效果不一定效率高
及时释放资源
sxiaohui8709253 2010-08-20
  • 打赏
  • 举报
回复
我把这个方法的方法体 注释掉 cpu占用率几乎忽略 我中间还有一个访问进度条的 跟上面这个用的是一个方法 也是这样
hu19860619 2010-08-20
  • 打赏
  • 举报
回复
7哥,分给我啊
zhao38322684 2010-08-20
  • 打赏
  • 举报
回复
人齐结贴
sxmny123 2010-08-20
  • 打赏
  • 举报
回复
卡卡更健康
subgreatgod 2010-08-20
  • 打赏
  • 举报
回复
不会.帮顶

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧