Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 交叉调用-在.net 1.1 2.0升级后,许多控件占用大量GUI应用程序-最佳方法?_User Interface_.net 2.0_Controls_Upgrade_Multithreading - Fatal编程技术网

User interface 交叉调用-在.net 1.1 2.0升级后,许多控件占用大量GUI应用程序-最佳方法?

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的类结构,我可以围绕这些结构进行编码

我最近将.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();