c# - 从另一个线程foreach listview项目

标签 c# multithreading winforms listview

我想从另一个线程使用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();
}

最佳答案

由于要触摸多个控件,因此需要在UI线程上执行整个循环。

void createMoviesXML()
{
    objectListView1.Invoke(new Action(() =>
    {
        foreach (var item in objectListView1.Items)
        {
            // Do stuff
        }
    }));
}

关于c# - 从另一个线程foreach listview项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443843/

相关文章:

c# - 如何仅从 C# 中的字符串列表中获取唯一值?

java - 为什么更喜欢 wait/notify 而不是 while 循环?

c# - 无法加载文件或程序集“System.Data.SQLite.SEE.License,版本=1.0.117.0”

multithreading - 当我尝试启动不同的线程时如何避免重复作业(每个核心一个)?

asp.net-mvc - MVC 设计模式/架构模式可以用于桌面应用程序开发吗?

c# - 如何删除当前绑定(bind)到控件的工具提示?

c# 对象定义属性是否可为空

c# - 连续读取和解析串行数据的快速方法

c# - Linq to CSV : Convert data to . CSV 文件并从操作返回文件而不在服务器上保存文件

c++ - C++中的多线程图像处理