CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于多线程的问题,急!!!谢谢各位大哥了

楼主ortejia()2006-11-02 10:59:04 在 .NET技术 / C# 提问

系统出错,提示如下:  
      线程间操作无效:从不是创建控件"m_TypecomboBox"的线程访问它。  
   
  这种问题一般怎么解决,都有什么方法? 问题点数:20、回复次数:4Top

1 楼winner2050(winner)回复于 2006-11-02 11:35:33 得分 0

多加个委托  
                  private   void   ThreadCreatTree()       //通过委托处理  
                  {  
                          MethodInvoker   In   =   new   MethodInvoker(this.CreatTree);  
                          this.BeginInvoke(In);  
                  }  
  线程调用委托,委托调用其他Top

2 楼alvachien(白衣战神,四大绝技:C#/C++/T-SQL/ABAP)回复于 2006-11-02 12:47:27 得分 0

在创建的线程里面包装一个访问Combobox的函数。  
  然后在调用的线程用MethodInvoker来调用...Top

3 楼liujia_0421(SnowLover)回复于 2006-11-02 13:32:14 得分 0

vs2005出于安全考虑,不容许这样的操作,即线程间相互调用,你在线程间更新界面的操作就触犯了这一点,解决的办法有以下两个:  
   
  第一:在构造函数中加上这样一句话即可:  
  CheckForIllegalCrossThreadCalls   =   false;  
  加上这句话后,线程的处理就同vs2003完全一样了,即允许线程间相互调用  
   
  第二:利用委托代理来实现:  
  举个很简单的例子,比如我想在线程中对窗体中的textbox进行更新,可以这样来实现,如下:  
   
                  //定义一个代理  
                  public   delegate   void   MyInvoke(string   str);  
                  //更新界面的方法  
                  private   void   UpdateTextBox(string   str)  
                  {  
                          textBox1.Text   +=str;  
                  }  
   
                  //在线程回调函数里需要更新界面的地方,这样操作:  
                  .....  
                  MyInvoke   mi   =   new   MyInvoke(UpdateTextBox);  
                  this.BeginInvoke(mi,   new   object[]   {   "i"   });  
                  .....  
   
   
  楼主可以试下,也可以上网再查下资料...  
   
  Top

4 楼zhzuo(秋枫)回复于 2006-11-03 13:59:31 得分 0

为Windows应用创建简单的异步调用模式  
  http://www.microsoft.com/china/MSDN/library/architecture/AsynCallPattern.mspxTop

相关问题

关键词

得分解答快速导航

  • 帖主:ortejia

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo