using System;
using System.Windows.Forms;using System.Threading;
namespace winapp
{
public partial class Form1: Form
{
//定义委托
public delegate void addToListViewDelegate(ListViewItem newItem);
public Form1()
{
InitializeComponent();
}
private void bt_search_Click(object sender, EventArgs e)
{
this.lv_controller.Items.Clear();
searchControllerThread = new Thread(new ThreadStart(searchControllerFunc));//子线程
searchControllerThread.Start();//启动线程
}
{
this.lv_controller.Items.Add(newItem);
}
public void searchControllerFunc()//线程函数
{
try
{
string sn="xx", ip="xxxxxx", mac="xxx", mask="xxxx", gateway="xxxxxx";
ListViewItem item = new ListViewItem(sn); //子项赋值
item.SubItems.Add(mac);
item.SubItems.Add(ip);
item.SubItems.Add(mask);
item.SubItems.Add(gateway);
//this.lv_controller.Items.Add(item);//添加到 this.lv_controller线程间操作无效:从不是创建控件 的线程访问它
this.lv_controller.Invoke(new addToListViewDelegate(addToListView), new object[] { item });//这里通过委托实现
}
catch (Exception es)
{
MessageBox.Show(es.ToString());
}
}
}
}