我在使用闹钟做app时遇到异常,但不幸的是我有一个例外,因为它没有答案。
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时会发生异常? 为什么我需要添加几秒钟?
答案 0 :(得分:0)
虽然我对Windows Phone 7开发并不十分熟悉,但我认为,从逻辑上讲,警报不会接受当前时间,因为代码运行所需的时间会使当前时间超过警报时间,甚至几毫秒。
如果你考虑一下,计算机会考虑自纪元以来的毫秒数,而不是几小时/分钟/秒。因此,即使从警报设置为“现在”后经过一毫秒,警报也会过期。
然后,Microsoft开发人员会设置Alarm类,为“now”的警报设置抛出异常,因为这种差异可能是因为警报不会追溯性地触发。 (如果它具有追溯性,那么他们必须进一步提供确定它会在什么条件下这样做,但收效甚微。)
但是,我对Windows Phone 7平台并不熟悉,所以如果有人提供相反的信息,请提供帮助!