if (listBox1.InvokeRequired)
{
listBox = new StringBuilder(this.listBox1.Text);
}
这是 c# 中的代码,执行时会对 listBox1 产生无效的跨线程操作错误,listBox1 是我表单中的列表框。
你们能告诉我为什么吗?
我也在使用 invokeRequired 方法,并且也没有更改列表框的内容。
InvokeRequired 仅告诉您需要调用才能有效访问该元素。它并不使访问合法。您必须使用invoke方法将更新推送到适当的线程
Action update = () => listbox = new StringBuilder(this.listBox1.Text);
if (listBox1.InvokeRequired) {
listBox1.Invoke(update);
} else {
update();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)