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#如何从另一个线程中删除dataGridView行?_C#_Multithreading_Datagridview - Fatal编程技术网

c#如何从另一个线程中删除dataGridView行?

c#如何从另一个线程中删除dataGridView行?,c#,multithreading,datagridview,C#,Multithreading,Datagridview,我需要从另一个线程中删除DataGridView行 只有当我从同一个线程中删除它时,此代码才有效 public void DeletedataGridView1(字符串文本) { //查看是否需要从不同的线程进行新调用 if(this.dataGridView1.invokererequired) { SetTextCallback h=新的SetTextCallback(AdddataGridView1); 调用(h,新对象[]{text}); } 其他的 { foreach(dataGrid

我需要从另一个线程中删除DataGridView行

只有当我从同一个线程中删除它时,此代码才有效

public void DeletedataGridView1(字符串文本)
{
//查看是否需要从不同的线程进行新调用
if(this.dataGridView1.invokererequired)
{
SetTextCallback h=新的SetTextCallback(AdddataGridView1);
调用(h,新对象[]{text});
}
其他的
{
foreach(dataGridView1.Rows中的System.Windows.Forms.DataGridViewRow第0行)
{
如果(dataGridView1.Rows.Count>1&&row0.Cells[0]。值!=null)
{
if(row0.Cells[0].Value.ToString()包含(文本))
{   
dataGridView1.Rows.RemoveAt(row0.Index);
}
}
}            
}
}
另一个线程:

myform.DeletedataGridView1("X");

这对我不起作用,行不会被删除。请帮助

您需要使用表单实例删除。请看我的两种形式的项目:你能更具体一点吗?我不太清楚“表单实例”是什么意思。它是像“public Form1 myform;Level2.Form1 formed;?”还是其他什么?链接显示了两个表单类Form1和Form2。实例是form1和form2。另一个线程是什么?是你开始的吗?或者您正在处理在UI线程之外的线程中引发的事件?您可以将
进度
委托传递给此线程吗?--什么是
SetTextCallback()
?为什么要检查
InvokeRequired
然后做两件不同的事情,如果是的话?您是否尝试过
if(this.InvokeRequired)