Это лучшее, что я мог придумать.Reminder
и служба планировщика не имеет механизма для регистрации событий (возможно, поэтому вы задали этот вопрос), поэтому я попробую кое-что по этому пути.Код говорит сам за себя.Вы регистрируете таймер, который будет выполняться одновременно с напоминанием.Однако тик таймера не будет запущен потоком, который вызовет напоминание, он просто будет выполнен одновременно.Вы можете зарегистрировать обратный вызов, и он вызовет ваш метод.
public class MyReminder : Microsoft.Phone.Scheduler.ScheduledNotification
{
public Action MyCallback { get; set; }
public void TimerCallback(object state)
{
if (MyCallback != null)
{
try
{
MyCallback();
}
catch { }
}
}
public override DateTime ExpirationTime
{
get
{
return base.ExpirationTime;
}
set
{
base.ExpirationTime = value;
System.Threading.Timer timer = new System.Threading.Timer(TimerCallback);
timer.Change((long)(value - DateTime.Now).TotalMilliseconds, Timeout.Infinite);
}
}
}