Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从另一个线程将项目添加到ListView而不导致异常_C#_Multithreading - Fatal编程技术网

C# 如何从另一个线程将项目添加到ListView而不导致异常

C# 如何从另一个线程将项目添加到ListView而不导致异常,c#,multithreading,C#,Multithreading,我尝试向listView添加一行 listView1.Items.AddRange(new ListViewItem[] { item1 }); 从一个不同的线程到创建它的线程,它抛出一个异常 有人能帮助我理解如何正确执行此操作吗?您可以使用以下命令在UI线程上执行代码: listView1.Invoke( new MethodInvoker(delegate(){ listView1.Items.AddRange(new ListViewItem[] { item1

我尝试向listView添加一行

listView1.Items.AddRange(new ListViewItem[] { item1 });
从一个不同的线程到创建它的线程,它抛出一个异常

有人能帮助我理解如何正确执行此操作吗?

您可以使用以下命令在UI线程上执行代码:

listView1.Invoke(
    new MethodInvoker(delegate(){ 
        listView1.Items.AddRange(new ListViewItem[] { item1 };
);

主题标题应该与你的问题相关。这不应该被关闭。@Lazarus:我几乎走遍了你的编辑。伟大的思想和一切:)@Justin-你是对的。他们是否取消了删除投票关闭的功能?@Justin(2)如果我没记错的话,你从来没有取消投票关闭的功能。使用泛型类型“System.Action”需要1种类型的参数。你使用的是哪个版本的.NET和C#。另外,该代码段是您的实际代码…还是仅仅是一个示例?@rebel_UA:non-generic
Action
委托仅在framework 3.5及更高版本中可用。只需声明一个可以替代使用的无参数委托:
public delegate void InvokeAction()
@Guffa@rebel_UA-稍微修改了我的答案,不使用动作委托。