关于多线程的问题,急!!!谢谢各位大哥了 系统出错,提示如下: 线程间操作无效:从不是创建控件"m_TypecomboBox"的线程访问它。这种问题一般怎么解决,都有什么方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多加个委托 private void ThreadCreatTree() //通过委托处理 { MethodInvoker In = new MethodInvoker(this.CreatTree); this.BeginInvoke(In); }线程调用委托,委托调用其他 在创建的线程里面包装一个访问Combobox的函数。然后在调用的线程用MethodInvoker来调用... 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" }); .....楼主可以试下,也可以上网再查下资料... 为Windows应用创建简单的异步调用模式http://www.microsoft.com/china/MSDN/library/architecture/AsynCallPattern.mspx 老板要求开发一个公司自己的C#开发工具,请问有没有好的思路和建议? 怎样在C#中画表格?像VB一样。 路径无效,请检查数据库的路径 页面传值的问题 进程-内存地址-数据 怎样在系统关闭时的强制关闭程序时,该程序调用一个方法?????? 如何在C#中把数据进行UTF8编码? C# WinForm 中对于PictureBox控件上的一点,程序运行时,拉大WinForm窗体,如何再获取到原来的那个点的坐标?? 对象构造速度怎么这么慢??? C#使用cadlib4.0控件库开发cad 关于listBox的问题 大虾请进: C#写简单的web服务器;如何支持 aspx 和 xmlhttp.
private void ThreadCreatTree() //通过委托处理
{
MethodInvoker In = new MethodInvoker(this.CreatTree);
this.BeginInvoke(In);
}
线程调用委托,委托调用其他
然后在调用的线程用MethodInvoker来调用...
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" });
.....
楼主可以试下,也可以上网再查下资料...
http://www.microsoft.com/china/MSDN/library/architecture/AsynCallPattern.mspx