日期:2014-05-18  浏览次数:20958 次

C#跨线程的参数传递问题
以下是一个跨线程访问可视化控件的窗体代码,其实现过程是点击按钮后,label中显示textbox中输入的信息:
  public delegate void SetLabelTextDelegate(string info);//根据访问函数自定义一个委托类型
  public partial class Form1 : Form
  {
  SetLabelTextDelegate del;
  public Form1()
  {
  //定义一个委托字段并初始化
  InitializeComponent();
  del = SetLabelText;
  }
  //访问Label控件的方法
  private void SetLabelText(string info)
  {
  lblInfo.Text = info;
  }
  //线程函数
  private void ThreadMethod(Object info)
  {
  lblInfo.Invoke(del, new object[] { info });
  }
  //点击按钮,创建线程,并启动它
  private void btnVisitLabel_Click(object sender, EventArgs e)
  {
  Thread th = new Thread(ThreadMethod);
  th.Start(txtUserInput.Text);
  }
问题:线程函数中的参数类型为object数组,而委托函数的参数类型为string,二者是怎样实现转换的?麻烦各位指教,谢谢!

------解决方案--------------------
Object 有 ToString 方法