0

我在使用警报做应用程序时遇到了一个异常,但不幸的是我遇到了一个异常,我不知道它的答案。

alarm = new Alarm(TitleBox.Text);
//alarm.BeginTime = DateTime.Now;
alarm.BeginTime=DateTime.Now.AddSeconds(5);
alarm.Content = "Alarm scheduled for a note.Please check it right now.";
alarm.ExpirationTime = expiryTime;
alarm.RecurrenceType = RecurrenceInterval.None;
IsAlaramOn = true;
ScheduledActionService.Add(alarm);

为什么开始时间为 DateTime.Now 时会出现异常?为什么我需要添加几秒钟?

4

1 回答 1

0

虽然我对 Windows Phone 7 开发不是很熟悉,但我认为,从逻辑上讲,警报不会接受当前时间,因为代码运行所花费的时间会使当前时间超过警报时间,即使是几毫秒。

如果您考虑一下,计算机自纪元以来以毫秒为单位进行思考,而不是以小时/分钟/秒为单位。因此,即使自警报设置为“现在”以来经过了一毫秒,警报也已过期。

然后,Microsoft 开发人员会设置 Alarm 类来为“现在”设置的警报抛出异常,因为这种差异,可能是因为警报不会追溯触发。(如果它确实追溯触发了,那么他们必须提供进一步的信息来确定它会在什么条件下触发,但收益很小。)

不过,同样,我对 Windows Phone 7 平台不是很熟悉,所以如果有人有相反的信息,请提供!

于 2013-06-20T16:24:38.063 回答