在Vs2008+winCE6.0环境下用C#控制skorpio x3手持的扫描。
在一个窗体里,创建,触发扫描事件都正常,当扫描条码后跳转到另一窗体时,就发生死机现象。原因是,在本次触发扫描事件后,进行页面跳转时,在关闭原form同时,对扫描事件销毁时就会发生死机问题。
而如果不是在触发扫描事件的同时,关闭本窗体并对扫描事件销毁就正常。 请各位大侠指教。
------解决思路----------------------
改成隐藏窗体不好吗?为什么一定要销毁
------解决思路----------------------
在关闭原form同时,对扫描事件销毁时就会发生死机问题。
---------------------
在关闭前进行判断一下 比如原form是否有效
------解决思路----------------------
一般需要接收什么我都是写个线程类,将业务代码封装,界面需要显示调用类接口就行。
尽量把界面也业务的代码分离,这样可以降低出错概率,而且出错了也容易调试。
------解决思路----------------------
你是定时刷新显示还是怎么处理显示部分代码?
是否关闭窗体时还会触发显示的动作?
------解决思路----------------------
1,可以把扫描的监听事件直接解绑,没有报错。 之前的实现是,通过vs wince 添加system....bar调用手持设备底层的串口读取扫描的数据,然后通过if判断放入指定的input框中。程序写的比较死。
2,手持设备厂家都会提供扫码的软件服务,安装之后,直接扫码即可,无效代码控制,扫完后,自动执行一个回车事件(input框)。 现在我用的是后一种。
------解决思路----------------------
我是做设备的,一般扫描都是串口模块,封装成几种接口:
1、封装API,同步调用获取数据
2、封装API,异步获取数据,这个一般是多线程,也可以是窗口消息
3、提供指令,自己去操作串口
4、提供后台服务,扫描会显示在焦点的编辑框上
处理都不复杂。不会出现死机问题,多查看下代码