2015-03-10 3 views
0

У меня есть приложение wpf с индикатором progressbar. Я хочу начать его через 1 минуту. мой индикатор выполнения работает правильно, просто нужно начать через определенный период времени.как запустить индикатор выполнения после некоторого интервала

код ProgressBar

public login() 
{ 
    InitilizeComponent() 
    DispatcherTimer timer= new Timer(1000); 
    timer.Elapsed+= timer_Elapsed; 
    timer.start(); 
} 
void timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
thsi.Dispatcher.Invoke(DispatcherProperty.Normal,(Action)() => 
{ 
    if (progressBar<20) 
    { 
     progressBar.value+=1; 
    } 
     else 
     { 
      timer.stop(); 
     } 
} 
) 
} 
+0

Использовать второй таймер, который начнет первый таймер через минуту, а не непосредственно в конструкторе? – nvoigt

+0

, пожалуйста, уточните ... Я не получил этот второй таймер. Что это??? – Dipika

ответ

0

Вы можете использовать комбинацию асинхронного/ожидают методы и таймер для достижения этой цели:

DispatcherTimer timerProgressBar;

public login() 
    { 
     InitializeComponent(); 

     //Create the timer 
     timerProgressBar = new DispatcherTimer(); 
     timerProgressBar.Interval = new TimeSpan(0,0,1); 
     timerProgressBar.Tick += timerProgressBar_Tick; 

     //Start waiting 
     WaitForProgressBar(); 
    } 

    void timerProgressBar_Tick(object sender, EventArgs e) 
    { 
     this.Dispatcher.Invoke(() => 
      { 
       if (progressBar.Value < 20) 
        progressBar.Value++; 
       else 
        timerProgressBar.Stop(); 
      }); 
    } 

    /// <summary> 
    /// Begins waiting for 1 minute before starting the timer. 
    /// </summary> 
    public async void WaitForProgressBar() 
    { 
     await Task.Run(() => System.Threading.Thread.Sleep(new TimeSpan(0, 1, 0))); 

     timerProgressBar.Start(); 
    } 

Используя метод async, это будет поддерживать ваш пользовательский интерфейс в течение периода ожидания. Если это не то, что было предназначено, просто измените методы async на синхронные.

+0

ОП, вы попробовали? У вас все еще есть проблемы? –

+0

Спасибо за это лучшее решение. Меня устраивает... – Dipika

Смежные вопросы