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 方法