2014-02-05 3 views
0

버튼 클릭시 비동기 적으로 타이머를 업데이트하려고합니다.타이머를 비동기 적으로 증가시키는 방법은 무엇입니까?

예 내가 = 60초

와 시간을 설정 한 말을 내가 타이머 45 초에 도달 한 몇 시간 후 프로그램을 실행하고 난 버튼을 클릭하면, 그것은에 J = 15 초 추가해야 할 때 시간과 타이머가 비동기식으로 60 초로 변경되어야합니다. 제발 도와주세요

private int time = 60; 
    DateTime dt = new DateTime(); 
    private j = 15 ; 
    private DispatcherTimer timer; 

    public MainWindow() 
    { 
     InitializeComponent(); 
     timer = new DispatcherTimer(); 
     timer.Interval = new TimeSpan(0, 0, 1); 
     timer.Tick += timer_tick; 
     timer.Start(); 
     } 

    void timer_tick(object sender, EventArgs e) 
    { 
     if (time >0) 
     { 
      time--; 
      text.Text = TimeSpan.FromSeconds(time).ToString(); 
     } 
     else 
     { 
      timer.Stop(); 
     } 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     text.Text = dt.AddSeconds(j).ToString("HH:mm:ss"); 
    } 
+0

클릭 처리기에서 'time + = 15;'또는 'time + = j;'와 같은 'time' 필드에 15 초를 추가하는 것은 어떻습니까? – Clemens

답변

1

여기 내 코드를 사용하면 효과가 있습니다.

private int time = 60; 
    DateTime dt = new DateTime(); 
    private int j = 15; 
    private Timer timer1 = new Timer(); 


    void timer_tick(object sender, EventArgs e) 
    { 
     if (time > 0) 
     { 
      time--; 
      text.Text = TimeSpan.FromSeconds(time).ToString(); 
     } 
     else 
     { 
      timer1.Stop(); 
     } 
    } 

    public timer() 
    { 
     InitializeComponent(); 
     timer1 = new Timer(); 
     timer1.Interval = 1000; 
     timer1.Tick += timer_tick; 
     timer1.Start(); 
    } 



    private void button1_Click(object sender, EventArgs e) 
    { 
     time += j; 
    } 
+0

그것은 매력처럼 일했다 :) thankz mahn :) – Antisan

관련 문제