社区
Java SE
帖子详情
碰到一个很妖的问题,按钮click事件调用函数可以得到正确结果,而用timer调用却不行
RechardXc
2006-12-14 05:38:07
通过jni方式调用外部dll的一个函数,通过按钮的click事件可以接收到信息,但通过timer的方式自动接收却收不到,按一下按钮收到第一条信息后,再用timer的方式调用又可以收到。在dll的函数加了printf,察看到二者传入的参数都相同,但就是用timer的方式收不到,不知道有人碰到过类似的现象没有?
...全文
327
9
打赏
收藏
碰到一个很妖的问题,按钮click事件调用函数可以得到正确结果,而用timer调用却不行
通过jni方式调用外部dll的一个函数,通过按钮的click事件可以接收到信息,但通过timer的方式自动接收却收不到,按一下按钮收到第一条信息后,再用timer的方式调用又可以收到。在dll的函数加了printf,察看到二者传入的参数都相同,但就是用timer的方式收不到,不知道有人碰到过类似的现象没有?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
RechardXc
2006-12-20
打赏
举报
回复
我感觉这个问题可能涉及到消息传递机制,有哪位大侠知道Java中有没有类似VC里PeekMessage、DispathMessage的方法?
RechardXc
2006-12-15
打赏
举报
回复
谢谢楼上的建议。我改用Thread测试了一下,还是不能接收到信息。除非先用按钮接收一下才可以。
fool_leave
2006-12-15
打赏
举报
回复
只能一点一点的查了,这个问题估计很难找到解释
我估计和notify有关。毕竟timer是通过notify来唤醒的
你这样,先用Thread来测试,看看能不能收到
如果不可以,则可能是线程接收的问题(估计不会)
再通过wait和notify来设置Thread的等待,看看这样可不可以收到,如果不可以,很可能是Notify的问题。那你只能用Thread来替代Timer了
如果可以,那我也不知道什么原因了,你干脆用Thread来做算了,留给sun去解决吧
RechardXc
2006-12-15
打赏
举报
回复
急啊,大家帮忙看看,一定给分
RechardXc
2006-12-15
打赏
举报
回复
对,触发了按钮的click但接收不到,所以我觉得很纳闷,难道手工点按钮和其它方式调用还有某些潜在的不同?
fool_leave
2006-12-15
打赏
举报
回复
BTW:我2楼的代码少写了个t.start();
就是说Timer start后直接read,结果Timer不起作用了
fool_leave
2006-12-15
打赏
举报
回复
你的意思是action已经触发了,但收不到信息?
RechardXc
2006-12-15
打赏
举报
回复
我的那个timer其实已经调用了dll的函数, debugger console里已经能定时返回函数printf出来的测试信息,但就是收不到数据。用按钮的click调用该函数就可以接收。后来把timer里改成触发按钮click来接收也不行,非要手工点一下那个按钮才能接收到信息。真奇怪啊,!·#¥%—
fool_leave
2006-12-15
打赏
举报
回复
我碰到过
Timer最终实际上是通过TimeQueue的单实例来判断的。我查了好久都没查到什么原因。估计和notify有关系,可能用到jni的东西,第一次会把TimeQueue锁住。只是猜想,没找到相关资料。各位可以找找。
用最简单的方法来测试
Timer t=new Timer(1000,this);
System.in.read();
这时t也不起作用了。
c#
Timer
中怎么在固定时间和固定周期中
调用
事件
1. **`System.Windows.Forms.
Timer
` 类**:这是
一个
基于Windows Forms的定时器,它可以在设定的时间间隔后触发
一个
事件
。 2. **
事件
处理**:通过定义
事件
处理函数并在定时器触发时
调用
这些函数来实现特定功能。 #...
pb 开发可改变背景的
按钮
在PB(PowerBuilder)开发中,创建
一个
可以改变背景的
按钮
是常见的需求,尤其是在构建具有交互性和个性化界面的应用程序时。本教程将深入探讨如何利用Win32 API(Windows应用程序接口)来实现这一功能。 首先,我们...
VB中三种延时程序的使用(含简单例程)
该函数通常通过
调用
Windows API来实现,因此需要先声明
一个
API函数。 ##### 示例代码 ```vb Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_
Click
() Text1 = ...
dephi 时间控件利用 循环某
事件
要实现“循环某
事件
”,可以在T
Timer
的On
Timer
事件
中
调用
按钮
的On
Click
事件
处理函数,代码如下: ```delphi procedure TForm1.
Timer
1
Timer
(Sender: TObject); begin Button1.
Click
; // 这里模拟
按钮
被点击,执行...
C语言函数参数的求值顺序及可变参数函数的设计方法.pdf
在C语言中,函数参数的求值顺序是
一个
重要的概念,它涉及到函数
调用
时实际参数(arguments)的计算顺序。C语言的标准并没有规定函数参数的求值顺序,这意味着编译器可以根据自己的实现选择任意顺序来计算参数。在...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章