2011-03-21 8 views
1

나는 소리를 수 초마다 재생하는 연습용 응용 프로그램을 만들고 버튼을 누를 때마다 소리가 재생되는 시간 간격이 줄어 듭니다. 예를 들어 처음에는 15 초마다 소리가 나고 버튼을 누르면 10 초마다 소리가납니다. 기본적으로 사용자가 버튼을 누를 때마다 간격이 5 초씩 감소합니다. 그래서 DispatcherTimer가 클래스 상단에 있고 페이지가로드 될 때 간격 및 Tick 메서드가 만들어집니다. 나는 또한 시간 범위에서 초 동안 int 변수를 가진다.버튼을 클릭 할 때 DispatcherTimer 속도가 향상됩니다.

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); 
} 

그러나 이것은 소리가 미친 듯이 재생됩니다. 이것을 할 수있는 적절한 방법이 있습니까?

답변

2

이것이 실제 코드라면 Larry는 꽤 맞습니다 ... 두 번째 시작하기 전에timer.stop();으로 전화해야합니다. 허용하지 않는 조건을 부여하십시오 interval < 0

2

두 번째 시작하기 전에 첫 번째 디스패처 타이머를 취소 하시겠습니까? 첫 번째 클릭 후 운영자 타이머가 실행되는 것이 가능합니까?

관련 문제