Windows phone 7 单击按钮时加速Dispatcher

Windows phone 7 单击按钮时加速Dispatcher,windows-phone-7,Windows Phone 7,我正在创建一个练习应用程序,它每隔几秒钟播放一次声音,当按下一个按钮时,它会缩短声音播放的时间间隔。例如,在开始时,它每15秒播放一次声音,当我按下按钮时,它现在应该每10秒播放一次声音。基本上,每次用户按下按钮,间隔就会减少5秒。因此,我在类的顶部有一个Dispatcher,当页面像这样加载时,我创建了它的interval和Tick方法。我还有一个int变量,表示时间跨度中的秒数 DispatcherTimer timer = new DispatcherTimer(); int interv

我正在创建一个练习应用程序,它每隔几秒钟播放一次声音,当按下一个按钮时,它会缩短声音播放的时间间隔。例如,在开始时,它每15秒播放一次声音,当我按下按钮时,它现在应该每10秒播放一次声音。基本上,每次用户按下按钮,间隔就会减少5秒。因此,我在类的顶部有一个Dispatcher,当页面像这样加载时,我创建了它的interval和Tick方法。我还有一个int变量,表示时间跨度中的秒数

DispatcherTimer timer = new DispatcherTimer();
int interval = 15;

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
        timer.Interval = new TimeSpan(0, 0, interval);
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();
}

void btn_Click(object sender, RoutedEventArgs e)
{
        Button btn = sender as Button;

        interval -= 5;

        timer = new DispatcherTimer();
        timer.Interval = new TimeSpan(0, 0, interval);
}

但这使得声音播放得很疯狂。是否有适当的方法来执行此操作?

是否在启动第二个调度程序计时器之前取消第一个调度程序计时器?第一次单击后是否有可能触发两个调度程序计时器?

是否在启动第二个调度程序计时器之前取消第一个调度程序计时器?有没有可能在第一次单击后,您有两个调度计时器启动?

如果这是您的实际代码,那么Larry是非常正确的。。。你必须叫定时器。停止;在开始第二步之前。
同时给出一些条件,以禁止间隔<0

如果这是您的实际代码,那么Larry是非常正确的。。。你必须叫定时器。停止;在开始第二步之前。 同时给出一些条件,以禁止间隔<0