User interface 交叉调用-在.net 1.1 2.0升级后,许多控件占用大量GUI应用程序-最佳方法?
我最近将.net1.1解决方案升级到.net2.0。 因为这是一个非常繁重的GUI应用程序,包含大量的控件和许多更新GUI的多线程操作。 虽然这些操作在.net1.1中无缝运行,但在升级后,它会抛出跨线程的非法操作。 考虑到tehre有许多网格、按钮和状态标签需要通过这些多线程操作进行更新,我决定编写代码来检查InvokeRequired解决方案,但是对每个控件这样做可能不是最好的方法 我想知道你是否可以建议一个更好的方法,我如何去做,或者提出任何基于OOPS的类结构,我可以围绕这些结构进行编码,使代码看起来更好 如果我的问题不清楚,请告诉我User interface 交叉调用-在.net 1.1 2.0升级后,许多控件占用大量GUI应用程序-最佳方法?,user-interface,.net-2.0,controls,upgrade,multithreading,User Interface,.net 2.0,Controls,Upgrade,Multithreading,我最近将.net1.1解决方案升级到.net2.0。 因为这是一个非常繁重的GUI应用程序,包含大量的控件和许多更新GUI的多线程操作。 虽然这些操作在.net1.1中无缝运行,但在升级后,它会抛出跨线程的非法操作。 考虑到tehre有许多网格、按钮和状态标签需要通过这些多线程操作进行更新,我决定编写代码来检查InvokeRequired解决方案,但是对每个控件这样做可能不是最好的方法 我想知道你是否可以建议一个更好的方法,我如何去做,或者提出任何基于OOPS的类结构,我可以围绕这些结构进行编码
提前感谢这里有一篇关于您的问题的好文章: 快速而肮脏的攻击是完全禁用检查:
static class Extensions {
public static DisableCrossThreadCheck(this Control c){
c.CheckForIllegalCrossThreadedCalls = false;
foreach(var ctl in c.Controls) {
ctl.DisableCrossThreadCheck();
}
}
}
(in your form):
this.DisableCrossThreadCheck();