C# 线程怎么返回参数到窗体??
封装了一个class供线程调用,以实现包含参数的线程。现在需要返回class中一个方法的结果到主窗体里面,比如直接写到TextBox里。因为封装的class与主窗体类是独...
封装了一个class供线程调用,以实现包含参数的线程。现在需要返回class中一个方法的结果到主窗体里面,比如直接写到TextBox里。因为封装的class与主窗体类是独立的,这样能实现吗?请问该怎么做?
展开
2015-01-20 · 知道合伙人数码行家
关注
展开全部
这个有多种方法
譬如:线程类中添加一个事件,线程结束时触发事件(把值传递出去),主窗体中未事件添加委托,从而在线程结束时通过线程中的事件获得值。
譬如:线程类中添加一个事件,线程结束时触发事件(把值传递出去),主窗体中未事件添加委托,从而在线程结束时通过线程中的事件获得值。
追问
我封装的累是这样的,里面返回的结果会一直增加,在主窗体里面想利用返回结果做一个类似于进度条之类的东西,或者直接表示下完成百分比也行
追答
通过事件把值传出来,主窗体中给这个事件添加处理方法,获得其中的值
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
classA ca = new classA();
ca.MyEvent += ca_MyEvent;
}
void ca_MyEvent(int i)
{
//...
}
}
public class classA
{
public delegate void MyFunHandeler(int i);
public event MyFunHandeler MyEvent;
public void CustomFun()
{
int progress=0;
//...
if(MyEvent!=null)
{
MyEvent(progress);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询