【发布时间】:2016-04-23 16:04:19
【问题描述】:
我有一个简单的代码,但这不起作用如何解决这个问题线程正在运行但listview没有更新有什么问题谁能解释一下?
public Form1()
{
InitializeComponent();
listView1.View = View.Details;
listView1.FullRowSelect = true;
listView1.Columns.Add("Problems", 80);
listView1.Columns.Add("Data", 120);
listView1.Columns.Add("Registry Key", 130);
listView1.Columns.Add("users", 80);
Thread childThread = new Thread(getlist);
childThread.Start();
}
public void getlist()
{
int i;
for (i = 0; i < 40; i++)
{
add("a", "b", "c", "d");
}
}
public void add(string prob, string reg, string data, string user)
{
String[] row = { prob, reg, data, user };
ListViewItem item = new ListViewItem(row);
ListViewItem v = listView1.Items.Add(item);
item.Checked = true;
}
【问题讨论】:
-
你忘了启动线程。
childThread.Start() -
另外你会遇到一个问题,它的解决方案是here
-
如果您直接在 UI 线程上运行代码会发生什么(无论如何都应该如此)
标签: c# .net multithreading winforms