跨线程操作无效-listbox Clear语句
本文关键字:Clear 语句 -listbox 无效 线程 操作 | 更新日期: 2023-09-27 18:00:44
我收到这个错误,因为我试图从一个最初没有创建列表框的线程更新列表框:
跨线程操作无效:从以外的线程访问控件"tbHistory"
Thread t = new Thread(UpdateHistory); // Kick off a new thread
t.Start();
private void UpdateHistory()
{
//tbHistory is a listbox
tbHistory.Items.Clear();
}
有人能给我解决这个问题的代码吗?我知道我应该使用invoke,但我在谷歌上找到的例子对我没有帮助。这些例子似乎只是展示了如何更改标签文本,而不是清除列表框。
您需要使用UI线程。要做到这一点,请使用:
private void UpdateHistory()
{
//tbHistory is a listbox
myForm.Invoke ((Action) (() =>tbHistory.Items.Clear()));
}
编辑:添加了缺少的括号,因为代码无法编译。