关于线程间传送参数的问题? 最近在做线程方面的程序,请问如何在两个线程间传递参数?就是我想把在一个线程中接受到的参数传递给另外一个线程,如何做,谢谢。现在遇到一个比较棘手的问题,就是我在另外一个线程中想弹出一个带有TreeView控件的窗体,当程序一运行到弹出窗体的地方的时候就会有异常,说是TreeView控件的DragDrop事件不能在另外一个线程中使用。请问各位高手如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用TreeView.Invoke 来执行你的操作 你遇到的问题是因为vs2005为安全考虑,不允许线程间相互调用,最好的办法就是用委托:举个例子,如果想在线程中更新一个Lable的Text://定义一个委托public delegate void MyInvoke(string str);//更新界面的函数private void updateUI(string str){ this.Lable1.text=str;}//线程回调函数private void threadProc(){ //其他操作 //更新界面的操作 string s="YouValue"; MyInvoke mi=new MyInvoke(updateUI); this.BeginInvoke(mi,new object[]{s});} 谢谢liujia_0421() ,那线程中调用窗体也是一样的吗?请详细说明一下好吗? 在线程中如果涉及到对窗体的操作,比如更改属性值,或者隐藏等其他操作,vs2005是不能直接进行操作的...vs2003是可以的... 问大家一个字符串处理问题,100分求解。 .net程序员如何快速上手java? 请教 我要使用winform 做Oracle的数据库连接,需要登录验证 Winform中的listview控件问题 c#调用sql存储过程 关于Web Site的Publish的问题 请问安装VISUAL STUDIO.NET对系统有什么要求吗 让superValidator的一个问题给难住了 关于streamreader一个奇怪的问题! 怎么样才能像QQ边框一样? 一个很奇怪的GDI+拷屏功能 急~!在线等待~!关于页面上传得问题
举个例子,如果想在线程中更新一个Lable的Text:
//定义一个委托
public delegate void MyInvoke(string str);
//更新界面的函数
private void updateUI(string str)
{
this.Lable1.text=str;
}
//线程回调函数
private void threadProc()
{
//其他操作
//更新界面的操作
string s="YouValue";
MyInvoke mi=new MyInvoke(updateUI);
this.BeginInvoke(mi,new object[]{s});
}
请详细说明一下好吗?