当前位置: 代码迷 >> Brew >> 在动态扩张里面调用ISHell_settimer设置的回调函数调用不到
  详细解决方案

在动态扩张里面调用ISHell_settimer设置的回调函数调用不到

热度:5742   发布时间:2013-02-26 00:00:00.0
在动态扩展里面调用ISHell_settimer设置的回调函数调用不到
如题,写了一个动态的应用,还有一个动态的扩展,动态的应用调用动态的扩展接口,在扩展里面用ISELL_Settimer设置一个定时器,时间片到了之后调用相应的函数,发现这个函数总是调用不到,有没有高人指导一下,谢谢!
------解决方案--------------------------------------------------------
有以下三个原因,1、调用IShell_SetTimer这个函数不在应用的上下文环境中。2、Timer还处在pending状态时相同的IShell_SetTimer又被重复调用。3、IShell_SetTimer回调函数的数据假如是应用实例或者是扩展实例请检查此时应用或扩展是否已经被释放。
------解决方案--------------------------------------------------------
怀疑是第一种情况造成的:
由于是Applet去调用Extension,由于Callback是创建在Applet相对应的栈里的,考虑是不是函数调用压栈而没有退栈,破坏了上下文环境呢。
  相关解决方案