WM6下怎样让程序在待机时依然正常运行

wjn161 2009-11-29 05:34:25
windows mobile 6 下的一个程序,需要在2,3秒内取一次数据,怎样才能让程序在手机待机的时候也能正常运行?
希望能通过C#实现的版本,C++的也可以,或者类似的方法或代码,谢谢大家~
...全文
233 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuqinglianga 2009-12-02
  • 打赏
  • 举报
回复
应该使用timetick再开个线程取数据就可以了
freshman45 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vichard 的回复:]
让你的数据成为唤醒源(需要硬件去做),有数据到时就唤醒系统读了。
或者设置RTC,不停地来RTC中断,来中断时采数,然后就SLEEP
[/Quote]

赞成。
这种情况只能跟bsp(oem厂商)合作,用中断的方式来进行(比如(手机来电))
wjn161 2009-12-01
  • 打赏
  • 举报
回复
楼上的引用错了,杯具。
应该是这个
[Quote=引用 1 楼 wswwxk 的回复:]
开个后台线程,让系统休眠,看可以不,可以参考手机关机后闹钟的程序,实现应该时一样的吧!!!
[/Quote]
wjn161 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 wjn161 的回复:]
windows mobile 6 下的一个程序,需要在2,3秒内取一次数据,怎样才能让程序在手机待机的时候也能正常运行?
希望能通过C#实现的版本,C++的也可以,或者类似的方法或代码,谢谢大家~
[/Quote]
谢谢,是个很不错的思路
wjn161 2009-12-01
  • 打赏
  • 举报
回复
实在不好意思,发了贴就去忙其他事了,现在才想起来,
软件是一个GPS程序,需要精确到2,3秒时间内的数据,而且在用户待机的情况下也要正常运行。
我一开始想过程序执行的时候不允许电话待机,但是这样的话要是程序一直运行的话,电池是不是坚持不了多久呢?
世外涛缘 2009-12-01
  • 打赏
  • 举报
回复
感觉实现不了,待机状态程序都被挂起,不能被执行。
关注了。
宇帆 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wswwxk 的回复:]
可以参考手机关机后闹钟的程序,实现应该时一样的吧!!!
[/Quote]
我觉得这句话有道理
gooogleman 2009-11-30
  • 打赏
  • 举报
回复
我觉得不行,休眠之后内存都进入自刷新模式了,不能再运行的了。
kakaximodo 2009-11-30
  • 打赏
  • 举报
回复
定义一个线程,由中断(当你的数据到来时)来触发它就行了,
ProgrammerNO1 2009-11-30
  • 打赏
  • 举报
回复
LZ是想弄啥样的程序在机器休眠时也运行
guopeixin 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ruritanian 的回复:]
你如果只是要访问disk的话调用SetPowerRequirement让disk不要进入休眠状态,这样即使其他设备休眠了也不会影响读数据乐。
[/Quote]
这倒是一个思路,但是如果cpu进入了休眠就不行了,呵呵
觉得2楼的方法不错
hahagoodhaha 2009-11-30
  • 打赏
  • 举报
回复
可通过设置RTC(时间根据需要设置),让RTC中断唤醒System,唤醒后使用PowerPolicyNotify API,使系统保持Unattended State(User感觉系统和待机没有什么区别),做你想要做的事情,然后设置RTC并调用PowerPolicyNotify API使系统进入Suspend state。

不过你的2,3秒的时间要求,估计很难实现,这样待机时间会大大缩短。
Vichard 2009-11-30
  • 打赏
  • 举报
回复
让你的数据成为唤醒源(需要硬件去做),有数据到时就唤醒系统读了。
或者设置RTC,不停地来RTC中断,来中断时采数,然后就SLEEP
guopeixin 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ruritanian 的回复:]
引用 6 楼 gooogleman 的回复:
我觉得不行,休眠之后内存都进入自刷新模式了,不能再运行的了。

实质上,在这种情况下不是真正进入suspend模式,而是进入UNATTENDED模式。
你可以参考下面链接
http://www.codeproject.com/KB/mobile/WiMoPower1.aspx?msg=2840882
里面Problem "Wake up and Quietly Work"这一节是专门讲C#的实现地
[/Quote]
这也要结合bsp中的系统状态的实现了,
Trek 2009-11-30
  • 打赏
  • 举报
回复
楼主提到的问题有可能是无法实现的,就是不知道楼主使用的是什么系统,有些系统在电源管理中已经将系统所有的电除了CPU RTC\SRAM自刷新没有关闭,其他都关闭了,如果您程序用到的资源电已经被关掉了,自然也没有办法运行了。如果电没有断掉,要运行程序也比较困难。
gooogleman 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ruritanian 的回复:]
引用 6 楼 gooogleman 的回复:
我觉得不行,休眠之后内存都进入自刷新模式了,不能再运行的了。

实质上,在这种情况下不是真正进入suspend模式,而是进入UNATTENDED模式。
你可以参考下面链接
http://www.codeproject.com/KB/mobile/WiMoPower1.aspx?msg=2840882
里面Problem "Wake up and Quietly Work"这一节是专门讲C#的实现地
[/Quote]

学习了。....
ruritanian 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gooogleman 的回复:]
我觉得不行,休眠之后内存都进入自刷新模式了,不能再运行的了。
[/Quote]
实质上,在这种情况下不是真正进入suspend模式,而是进入UNATTENDED模式。
你可以参考下面链接
http://www.codeproject.com/KB/mobile/WiMoPower1.aspx?msg=2840882
里面Problem "Wake up and Quietly Work"这一节是专门讲C#的实现地
ruritanian 2009-11-29
  • 打赏
  • 举报
回复
你如果只是要访问disk的话调用SetPowerRequirement让disk不要进入休眠状态,这样即使其他设备休眠了也不会影响读数据乐。
当我遇上-你 2009-11-29
  • 打赏
  • 举报
回复
开个后台线程,让系统休眠,看可以不,可以参考手机关机后闹钟的程序,实现应该时一样的吧!!!

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧