我想从另一个线程使用foreach(objectListView1.Items中的ListViewItem项),但我不知道如何。
我的代码:
void createMoviesXML()
{
foreach (ListViewItem item in objectListView1.Invoke(new Action(() => objectListView1.Items)) // I know it's wrong
{
if (Regex.IsMatch(item.SubItems[0].Text, @"&"))
{
item.SubItems[0].Text = Regex.Replace(item.SubItems[0].Text, @"&", "&");
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
Thread thr1 = new Thread(new ThreadStart(createMoviesXML));
thr1.Start();
}
答案 0 :(得分:3)
您需要在UI线程上执行整个循环,因为您正在触摸多个控件。
void createMoviesXML()
{
objectListView1.Invoke(new Action(() =>
{
foreach (var item in objectListView1.Items)
{
// Do stuff
}
}));
}