如何解决如何在C#中使用ListBox更改焦点
我是C#的初学者,所以也许我不太明白为什么会出现此错误。
System.InvalidOperationException:跨线程操作无效: 控制从其他线程访问的“ lstb_files_r” 创建于。
这就是我在做什么:
- 我放下X csv。
- 我读了第一个(
lstb_files_r.SelectedIndex = i;
) - 完成后,我想读第二版(i ++)。但是我有这个错误...
有人可以告诉我如何解决吗?
解决方法
当我问我的问题时,我继续查看所有链接,发现了一些东西(也许这不是最好的方法,但我会找到其他解决方案)
我使用委托
lstb_files_r.Invoke((MethodInvoker)delegate
我将所有代码放入其中,并且可以正常工作。
,您正在执行交叉线程操作,这意味着您在一个线程(这是您的算法)中,并且想要在另一个线程(此处GUI是另一个线程)中执行某些操作,这是不允许的。为此,您必须调用GUI线程并执行功能。在C#中,最简单的方法是使用backgraoudworker
,使用backgroudworker
可以看到here如何使用后台工作程序。
在后台工作人员中,使用progressreport
执行GUI操作。如果您需要进一步的帮助,我可以为您提供帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。