C#中Invoke调用方法
在C#中,有时候会调用不同控件的同一个public(公共)方法,具体用到哪个控件的public方法却是视情况而定的,这个时候你就可以用Invoke了。
现在有控件名为Manage1、Manage2的两个控件,有ID为text的TextBox控件。
Control obj;
if(text.Text=="1")
obj=new Manage1();
else
obj=new Manage2();
MethodInfo methodinfo=obj.GetType().GetMethod("要调用的public方法名",new Type[]{typeof(string)});//MethodInfo类是在System.Reflection命名空间底下
if(methodinfo!=null)
methodinfo.Invoke(obj,new object[]{"参数"});
这样就可以调用控件的 public方法了。
C#中BeginInvoke
在线程中给text(是TextBox)赋值
delegage void Cinvokes(string str);
Thread thread=new Thread(new ThreadStart(DoWork));
thread.Start();
private void DoWork()
{
Cinvokes ivk=new Cinvokes(Updata);
this.BeginInvoke(ivk, new object[] {"参数" });}
}
private void Updata(string str)
{
text.Text=str;
}