C# 通过发送多个对象以调用委托方法更新treeview
我正在尝试更新treeview,但收到一个错误,无法将Obj转换为字符串 我正在创建一个使用多个线程的扫描程序,检查每个项目后,我想调用一个委托,用新信息更新树视图。如果我只使用一个对象调用该方法,那么我可以很容易地调用它来更新信息,但是一旦我尝试使用字符串调用该方法,我就会得到一个错误 我是这样做的:C# 通过发送多个对象以调用委托方法更新treeview,c#,.net,multithreading,treeview,C#,.net,Multithreading,Treeview,我正在尝试更新treeview,但收到一个错误,无法将Obj转换为字符串 我正在创建一个使用多个线程的扫描程序,检查每个项目后,我想调用一个委托,用新信息更新树视图。如果我只使用一个对象调用该方法,那么我可以很容易地调用它来更新信息,但是一旦我尝试使用字符串调用该方法,我就会得到一个错误 我是这样做的: public delegate void StringDelegate(string input, string address); public void UpdateSca
public delegate void StringDelegate(string input, string address);
public void UpdateScan(string input, string ip)
{
TreeNode treeNode = new TreeNode(input);
if (!(outputTree.Nodes.ContainsKey(input)))
{
//Add our parent node
outputTree.Nodes.Add(treeNode);
//Add our child node
treeNode.Nodes.Add(ip);
}
else
{
//Add only child node
treeNode.Nodes.Add(ip);
}
}
public void scanItem()
{
//Scan code
//Result Code
string outPut = "Pretend Result";
//Invoke our callback
object[] obj = new object[1];
obj[0] = outPut;
outputTree.BeginInvoke(new StringDelegate(UpdateScan), obj, Ip.ToString());
}
有人能告诉我哪里出了问题吗?您正在显式地向调用添加对象 改变
object[] obj = new object[1];
obj[0] = outPut;
outputTree.BeginInvoke(new StringDelegate(UpdateScan), obj, Ip.ToString());
到
嘿,这解决了问题,现在我很好地返回了两个字符串。谢谢你的帮助。
outputTree.BeginInvoke(new StringDelegate(UpdateScan), outPut, Ip.ToString());