软件运行时由于缺少硬件信息,出现“未将对象引用设置到对象的实例”其中值为null,
不是因为循环,时因为这个使用了C#的Timer控件,这是个计时器,会在一定的时间重复timer1_Tick这个方法,所以会池逊弹出异常。
至于异常本身,时因为ocvMgr这个变量没有取到值的时候,你就使用它的属性Device所以就报了,未将对象引用到对象的实例。
建议还是检查一下为什么取不到值吧,解决问题的根源。或者提前判断下ocvMgr是否是null。
加null判断呗,为null就退出不执行,要不就执行catch一直输出message内容了
private void timer1_Tick(obj sender,EventArgs e){
if(ocvMgr==null)return;//退出函数,不执行下面的代码
timer的后台是线程,所以不受dialog窗体阻塞,持续反复执行
你可以在show之前停止timer,show之后启动timer,就只弹出一次了
不过这都不是根源
根源是,你在判断一个对象的属性是否为空之前,要先判断对象本身是否为空,空对象哪来的属性?