Multithreading 在“Windows窗体”选项卡中单击“背景”

Multithreading 在“Windows窗体”选项卡中单击“背景”,multithreading,winforms,dotnetbar,Multithreading,Winforms,Dotnetbar,我有一个应用程序,它在WinForms应用程序的父窗体顶部有一个第三方选项卡条(DotNetBar)。出现的问题是,当单击选项卡切换表单,然后在屏幕上移动鼠标时,WinForms应用程序后面的应用程序开始流血,这是不可取的 现在我已经在4个版本的tab strip上看到了这种行为,希望更新可以解决这个问题,但我不认为tab strip有错 我的假设是这样的,但请独立回答。单击选项卡时会发生一些密集的代码处理(数据库调用、屏幕加载、逻辑等)。我想知道原因是否是因为所有这些处理都必须在UI线程上进行

我有一个应用程序,它在WinForms应用程序的父窗体顶部有一个第三方选项卡条(DotNetBar)。出现的问题是,当单击选项卡切换表单,然后在屏幕上移动鼠标时,WinForms应用程序后面的应用程序开始流血,这是不可取的

现在我已经在4个版本的tab strip上看到了这种行为,希望更新可以解决这个问题,但我不认为tab strip有错

我的假设是这样的,但请独立回答。单击选项卡时会发生一些密集的代码处理(数据库调用、屏幕加载、逻辑等)。我想知道原因是否是因为所有这些处理都必须在UI线程上进行,WinForms应用程序无法保持主应用程序窗口刷新(可能?),并且后台正在溢出。我想知道将密集的工作转移到后台线程,并允许用户界面单独刷新和继续是否会有所帮助

我想这些年来我在性能差的Windows机器上看到过类似的行为,这就是为什么我认为这个问题是一般性的,不一定是控制问题(尽管我可能在这方面错了)


我这里主要的一般性问题是什么会导致应用程序在Windows窗体应用程序中的主前台流血?

组件供应商甚至没有[tag]标记。您需要从供应商处获得支持,首先单击他们主页上的支持按钮。@HansPassant-我当时使用的
dotnetbar
标签是什么(DevComponents.DotNetBar2有标签条)?此外,我尊重并屈服于您的经验,多年来,我本人已立即在表格上回复“首先查看供应商论坛”。不过,我很想听听您对我问题的其余部分的意见。我有一个意见,但事实无法证明这一点。你说得对,devcomponents公司的创始人确实在这里有一个帐户。最后一次见面是一个月前。别着急,很有可能你会在他自己的网站上很快找到他。@HansPassant-我处于两难境地。我们的许可证几个月前过期,只有获得许可的用户才能访问论坛:(.然而,我仍然能够使用最新版本的试用来验证问题仍然存在。就头脑风暴的观点而言,我很高兴听到,我相信这里或聊天中的评论部分正适合于此。我只需要一些关于如何攻击此问题的想法,并在可能的情况下进行修复。这是失败尝试的标准bat信号模拟透明度。前景会被重复绘制,但在绘制前景之前背景不会被重新绘制。因此,旧的前景像素不会被一致地过度绘制,结果类似于“出血”。通常不容易修复。