栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么在bin Debug中运行exe时不会引发跨线程操作异常

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在bin  Debug中运行exe时不会引发跨线程操作异常

是的,仅在连接调试器时才检查。这是必要的,因为有 很多 .NET 1.x代码违反了此规则。这不是显而易见的。

更大的问题是这样的代码无法实现。要么靠运气,要么不考虑偶尔出现的绘画问题,或者不认为应用程序死锁时中止应用程序并每天重启一次,这是可以接受的。因为程序员根本没有希望在没有诊断的情况下发现问题。

Microsoft非常关心向后兼容,即使它是错误的兼容也是如此。该修补程序非常出色,即使有时会出错(在不应该检查Show(owner)时也是如此)。有时会忽略检查框架中的代码是否违反了规则。当线程依赖关系是间接的时,会发生这种情况。最常见的情况是在工作线程中更新数据绑定控件的数据源(首先取消绑定!),并使用侦听SystemEvents.UserPreferenceChanged事件的控件(不要在第二个线程上创建UI!)


作为参考,相关的代码位于Control类的静态构造函数中:

static Control(){    //...    checkForIllegalCrossThreadCalls = Debugger.IsAttached;    //...}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号