日期:2014-05-20  浏览次数:20915 次

多线程委托的问题,各位请进,在线等!
请问各位,,有谁用过多线程委托,,我有个问题不明白,我在命名空间中定义了一个委托函数,也同一个命名空间的同一类里多线程中调用了委托函数,不明白的是为什么在
public   string   Conn
{
get
{
return   _conn;
}
set
{
_conn=value;
}
}
private   void   DelegateExcuteImport()
{
FM_ImportDB   fmdb=new   FM_ImportDB();
message.Items.Add(Thread.CurrentThread.Name+ "已开启...请等待 ");
DelegateImport   di=new   DelegateImport(fmdb.ExcuteImport);
di(Ds);
}
public   void   ExcuteImport(DataSet   ds,string   Conn)
{
                                    。。。。。。。。。。
                                  listbox1.items.add( "******** ");
                                  。。。。。。。。。
                                  }
这个委托函数对象di把Ds值传到被委托函数ExcuteImport中时,Conn属性值会清空,好象被初始化了一样?并且listbox1里也加不了item值,为什么,有谁碰到过这种情况啊????

------解决方案--------------------
当前实例的异步委托,在多线程中要操作其它线程中的UI控件都要用异步委托,因为你的listBox1是属于form这个线程的,所以要用this.BeginInvoke。