C#未将对象引用设置到对象的实例

软件运行时由于缺少硬件信息,出现“未将对象引用设置到对象的实例”其中值为null,

img


尝试用try{ }catch{ }捕获异常使软件继续运行

img


没有反应
尝试生成

img


连续抛出异常信息,查看引用,无循环

不是因为循环,时因为这个使用了C#的Timer控件,这是个计时器,会在一定的时间重复timer1_Tick这个方法,所以会池逊弹出异常。
至于异常本身,时因为ocvMgr这个变量没有取到值的时候,你就使用它的属性Device所以就报了,未将对象引用到对象的实例。
建议还是检查一下为什么取不到值吧,解决问题的根源。或者提前判断下ocvMgr是否是null。

加null判断呗,为null就退出不执行,要不就执行catch一直输出message内容了


private void timer1_Tick(obj sender,EventArgs e){
if(ocvMgr==null)return;//退出函数,不执行下面的代码

img


尝试挂起主线程,依旧连续抛出异常

timer的后台是线程,所以不受dialog窗体阻塞,持续反复执行
你可以在show之前停止timer,show之后启动timer,就只弹出一次了
不过这都不是根源
根源是,你在判断一个对象的属性是否为空之前,要先判断对象本身是否为空,空对象哪来的属性?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632