• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

频繁跨线程访问控件消耗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 然后直接就卡住了 ,求助
...全文
111 点赞 收藏 6
写回复
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日
不会.帮顶
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告