C# 通过类获取线程中ListView中的项

C# 通过类获取线程中ListView中的项,c#,.net,multithreading,exception,C#,.net,Multithreading,Exception,我有一个类,其中有一个函数“Build”,该类接受一个参数:“ListView lstFiles”。当调用.Build时,它会遍历listview中的每个项并对其进行处理 当我尝试执行此操作时,会出现错误“跨线程访问冲突” 我的代码: foreach (ListViewItem item in lstFiles.Items) { // Processing here } 我试着得到这里描述的物品 我需要获取ListView中的每个项目并对其进行处理 有人能帮忙吗?使用委托解决跨线程问题

我有一个类,其中有一个函数“Build”,该类接受一个参数:“ListView lstFiles”。当调用.Build时,它会遍历listview中的每个项并对其进行处理

当我尝试执行此操作时,会出现错误“跨线程访问冲突”

我的代码:

foreach (ListViewItem item in lstFiles.Items)
{
    // Processing here
}
我试着得到这里描述的物品

我需要获取ListView中的每个项目并对其进行处理


有人能帮忙吗?

使用委托解决跨线程问题。例如

    delegate ListView.ListViewItemCollection DelGetItems(ListView lvControl);

    ListView.ListViewItemCollection GetItems(ListView lvControl)
    {
        if (lvControl.InvokeRequired)
        {
            return (ListView.ListViewItemCollection)lvControl.Invoke(new DelGetItems(GetItems) ,new Object[] { lvControl });
        }
        else
        {
            return lvControl.Items;
        }
    }

代码是如何被触发的?这段代码是从您之前创建的另一个线程执行的吗?这段代码是由一个类(一个单独的类)触发的。我调整了您的代码(因为我不能使用“this.Invoke”),仍然得到一个空值。请记住,我正在使用一个类,然后调用Build方法。该类有一个构造函数,该构造函数将ListView的名称作为参数。