fra*_*Xis 0 .net c# multithreading
我收到此错误,因为我试图从最初未创建的线程更新我的列表框:
跨线程操作无效:从除以外的线程访问控制'tbHistory'
Thread t = new Thread(UpdateHistory); // Kick off a new thread
t.Start();
private void UpdateHistory()
{
//tbHistory is a listbox
tbHistory.Items.Clear();
}
Run Code Online (Sandbox Code Playgroud)
有人可以给我代码来解决这个问题吗?我知道我应该使用invoke,但我在Google上找到的例子并没有帮助我.这些示例似乎只显示了如何更改标签文本,而不是清除列表框.
您需要使用UI线程.要完成此任务,请使用:
private void UpdateHistory()
{
//tbHistory is a listbox
myForm.Invoke ((Action) (() =>tbHistory.Items.Clear()));
}
Run Code Online (Sandbox Code Playgroud)
编辑:添加缺少括号,因为代码无法编译.
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |