gpt4 book ai didi

c# - 同一个项目,不同的机器,一台机器有跨线程问题

转载 作者:行者123 更新时间:2023-11-30 22:45:05 24 4
gpt4 key购买 nike

我有两台机器,一台是我在家里用于开发的旧东芝笔记本电脑,另一台是工作时用了 1 年的戴尔笔记本电脑。两者都运行相同版本的 visual studio 2008。在过去的几个月里,我一直在为客户构建一个项目。它在我的旧笔记本电脑上运行良好,但如果我在相同的工作环境中运行它,我会遇到跨线程问题,有人知道为什么吗?项目/环境中是否有我需要选中或取消选中的内容...

自从我在主用户​​界面上添加了一个选项卡控件后,问题就出现了。当加载主单时,当Tab控件进行动态调整时,交叉线程错误会发生 - 我使其像可扩展的面板一样 react ,因此如果不使用它,则可以将其隐藏。

这是线路发生故障,这是在主负载部分:

expandable_tabcontrol.Left += expandable_tabcontrol.Width;

这是错误信息:

An unhandled exception of type 'System.InvalidOperationException' 
occurred in System.Windows.Forms.dll

Additional information: Cross-thread operation
not valid: Control 'frmUserInterFace' accessed
from a thread other than the thread it was created on.

在家里运行良好,在工作中失败......

谢谢,R。

最佳答案

如果没有更多信息,很难确定,但在我看来,调整大小的方法可以在多个地方调用。您的旧东芝很可能是单核机器,因此计算机一次不能做多件事,并且选项卡由主线程调整大小。在您的较新的 Dell 机器上,可能有多个内核,辅助线程正在调用执行调整大小的方法,这导致抛出异常。

研究使用 Control.InvokeRequiredControl.Invoke 来处理后台线程和 UI 线程之间的同步。

关于c# - 同一个项目,不同的机器,一台机器有跨线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com