定时器在手机关屏情况下不工作?

Triumph 2009-12-19 11:42:13
用 .Net 开发的一个小程序,使用的是 Timer 组件。定时器在屏幕开的情况下一切正常,但关屏后发现定时器也停止了,开屏后又接着计时。大家遇到此情况没?该如何解决?
...全文
309 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
egmkang 2010-01-11
  • 打赏
  • 举报
回复
OpenNetCF好是好,但是太大了
.NET本来跑的就慢,用OpenNetCF就更慢了.
liyxxx 2009-12-22
  • 打赏
  • 举报
回复
好贴,受教了。
yanbo_hu 2009-12-22
  • 打赏
  • 举报
回复
Timer组件设置的时间较短,在关屏状态一般停止。
要实现你所说的功能在OpenNETCF.WindowsCE.dll中的LargeIntervalTimer可以搞定。dll自己到OpenNETCF的官网上去下载吧。而且你还会有很多意外的收获




using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using OpenNETCF.WindowsCE;
using System.Threading;
using System.Diagnostics;

namespace LITHandler
{
public partial class MainForm : Form
{
private LargeIntervalTimer m_timer = new LargeIntervalTimer();

public MainForm()
{
InitializeComponent();
start.Click += new EventHandler(start_Click);
}

private void start_Click(object sender, EventArgs e)
{
if (m_timer.Enabled)
{
start.Text = "Enable Timer";

// stop the timer
m_timer.Enabled = false;
}
else
{
int first = int.Parse(firstTick.Text);
int interval = int.Parse(tickInterval.Text);

start.Text = "Disable Timer";

// update a label to show when we started
started.Text = DateTime.Now.ToString("HH:mm:ss");

// set the timer's properties
m_timer.OneShot = false; //run forever
m_timer.FirstEventTime = DateTime.Now.AddSeconds(first); // start in 15 seconds
m_timer.Interval = new TimeSpan(0, 0, interval); // fire every 30 seconds after that

m_timer.Tick += new EventHandler(OnTick);

// start the timer
m_timer.Enabled = true;
}
}

void OnTick(object sender, EventArgs e)
{
if (this.InvokeRequired)
{
this.Invoke(new EventHandler(OnTick), new object[] { sender, e });
return;
}

// update a label to show we've ticked
lastTick.Text = DateTime.Now.ToString("HH:mm:ss");
}
}
}


祝你好运。
beyondma 2009-12-20
  • 打赏
  • 举报
回复
看一眼我的博客吧,这个是电源的问题。你的测试平台肯定是PPC。他的电源管理和SMARTPHONE不同。
欧巴Godwin 2009-12-20
  • 打赏
  • 举报
回复
关屏还可以重新亮屏,如果是休眠了,那就铁定不能通过定时器来唤醒了,只能用过外部中断(按键)来唤醒机器。
aijie099 2009-12-20
  • 打赏
  • 举报
回复
或者,在定时时间设一个唤醒。
aijie099 2009-12-20
  • 打赏
  • 举报
回复
不仅仅是关屏了吧。可能是休眠了。
你可以让手机不要休眠。
世外涛缘 2009-12-20
  • 打赏
  • 举报
回复
楼主应该不是关屏状态,而是休眠状态。

7,655

社区成员

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

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