通过jni方式调用外部dll的一个函数,通过按钮的click事件可以接收到信息,但通过timer的方式自动接收却收不到,按一下按钮收到第一条信息后,再用timer的方式调用又可以收到。在dll的函数加了printf,察看到二者传入的参数都相同,但就是用timer的方式收不到,不知道有人碰到过类似的现象没有?
解决方案 »
- 非法向前引用
- java获取一段文字中的url地址并且在网页中以链接的形式显示
- 比较郁闷,不知道问题出在什么地方
- 求素数的问题
- 请问大家两个问题!DOM查生吃内存问题;对他在产生的数据如何进行base64编码,解决马上给分。谢谢各位。
- 求java com口的交互程序?
- 为什么会这样?byte数组转化成string再转回来就不一样了
- class的访问控制???
- 为什么我的JInternalFrame最大化的时候挡住了我的工具栏?有办法解决吗?
- 读取数据库中数据生成swing中JTree各级节点
- Java 中怎样映射一个盘符(详细请看下)
- eclipse的各个插件,runtime和sdk有什么差别?
Timer最终实际上是通过TimeQueue的单实例来判断的。我查了好久都没查到什么原因。估计和notify有关系,可能用到jni的东西,第一次会把TimeQueue锁住。只是猜想,没找到相关资料。各位可以找找。
用最简单的方法来测试
Timer t=new Timer(1000,this);
System.in.read();这时t也不起作用了。
就是说Timer start后直接read,结果Timer不起作用了
如果不可以,则可能是线程接收的问题(估计不会)再通过wait和notify来设置Thread的等待,看看这样可不可以收到,如果不可以,很可能是Notify的问题。那你只能用Thread来替代Timer了如果可以,那我也不知道什么原因了,你干脆用Thread来做算了,留给sun去解决吧