多线程卡死 请大神帮忙 感激不尽

xiuxin555 2013-02-16 01:29:34
C# 新建线程 然后再新线程中 invoke或begininvoke 向 窗体控件添加大量信息 时窗体 卡死不能进行任何操作 直到 向控件中添加信息完毕 才能移动操作窗体
新建线程代码如下:
public delegate void tt(string T);

public override void run()
{

gethtml href = new gethtml(temp ); //href 枚举器
foreach (string T in href)
{

x.beginInvoke(new tt(ww),T);// x 为窗体对象


}
}
private void ww(string T)
{
x.textBox1.AppendText(T + "\n");
x.textBox1.AppendText("\n");

}
...全文
313 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
拥抱开源 2013-02-18
  • 打赏
  • 举报
回复
nanoxue 2013-02-18
  • 打赏
  • 举报
回复
Public void Invorks(){ gethtml href = new gethtml(temp ); //href 枚举器 foreach (string T in href) { This.Invork((MethodInvorker)delegate(){ x.beginInvoke(new tt(ww),T); }); } } } //调用 Thread thread=new Thread(Invorks); Thread.start();
  • 打赏
  • 举报
回复
既然是多线程,就不会有卡死的情况。 说明你的调用没有用到合适的位置。 ======================================================= .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。 平台博客:[CNBLOGS]http://www.cnblogs.com/huyong [CSDN]http://blog.csdn.net/chinahuyong 交流QQ:406590790 (请注明:CSDN) 平台微博:http://t.qq.com/yonghu86 邮件交流:406590790@qq.com
wmg494005678 2013-02-16
  • 打赏
  • 举报
回复
试试介个。。。
Application.DoEvents()
catchdream 2013-02-16
  • 打赏
  • 举报
回复
如果你的需求是 “向窗体控件添加大量信息”,基本就是按1楼处理,你现在做的是 “大量向窗体控件添加信息”,肯定卡死了
yinhao2268 2013-02-16
  • 打赏
  • 举报
回复
我顶起来!
xiuxin555 2013-02-16
  • 打赏
  • 举报
回复
除了一楼的 就没有别的办法了??
着魔 2013-02-16
  • 打赏
  • 举报
回复
看你上面不是用委托了么? 还有建议你用一楼说的方法
xiuxin555 2013-02-16
  • 打赏
  • 举报
回复
引用 3 楼 Mackz 的回复:
你这个做法,和不开线程没区别。
嗯 嗯 对 难道像这样的就不能用新线程操作??还是有别的方法 ?
菜牛 2013-02-16
  • 打赏
  • 举报
回复
你这个做法,和不开线程没区别。
hustgonia 2013-02-16
  • 打赏
  • 举报
回复
回复等加分.祝贺楼主新春愉快!
qldsrx 2013-02-16
  • 打赏
  • 举报
回复
你应该先往StringBuilder里添加大量信息,最后一次性添加到TextBox里,否则每次更改TextBox,界面都要刷新,不卡才怪。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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