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 の開発にあまり詳しくありませんが、論理的には、コードの実行にかかる時間により、現在時刻がアラーム時刻を過ぎてしまうため、alarm は現在時刻を受け入れないと思います。数ミリ秒。

考えてみれば、コンピュータは時間/分/秒ではなく、エポックからのミリ秒単位で考えます。そのため、アラームが「今」に設定されてから 1 ミリ秒が経過しても、アラームは期限を過ぎています。

Microsoft の開発者は、おそらくアラームがさかのぼって起動しないため、その不一致のために、「今」に設定されたアラームに対して例外をスローするように Alarm クラスを設定したでしょう。(DID がさかのぼって発砲した場合、どのような条件で発火するかを決定するためにさらに提供する必要があり、ほとんど利益はありません。)

繰り返しますが、私は Windows Phone 7 プラットフォームにあまり詳しくないので、反対の情報をお持ちの方がいらっしゃいましたら、ご協力ください。

于 2013-06-20T16:24:38.063 に答える