2015-07-07 6 views
-1
public partial class Window1 : Window 
{ 
    private DispatcherTimer timer; // timer 
    public Window1() 
    { 
     InitializeComponent(); 
    } 

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     timer = new DispatcherTimer(); 
     timer.Interval = TimeSpan.FromSeconds(1); 
     timer.Tick += new EventHandler(timer_Tick); 
     timer.Start(); 
     int b;//if arrives here instead of the function timer_Tick!!!!!!! 
    } 

    void timer_Tick(object sender, EventArgs e) 
    { 
     // function 
    } 
} 

Функция таймера запускается только после завершения текущей функции. вместо запуска, когда начинается время, функция начинается после строки «int b»!Таймер WPF-функция таймеров не работает вовремя

+0

У вас возник вопрос, стоящий здесь? Кроме того, как вы это определили? – oppassum

+0

Что ты имеешь в виду? Я нашел проблему по пунктам перерыва – user3590450

+0

Он спрашивает, в чем ваш вопрос. Вы заявляете кучу вещей, но никогда не задаете вопрос. – Adam

ответ

3

Прочтите MSDN для DispatcherTimer, он явно указывает, что они добавляются в очередь диспетчера.

DispatcherTimer переоценивается в верхней части каждого цикла диспетчера. Таймеры не гарантируют выполнение точно, когда происходит интервал времени, но они гарантированно не выполняются до того, как произойдет интервал времени. Это связано с тем, что операции DispatcherTimer помещаются в очередь диспетчера, как и другие операции. При выполнении операции DispatcherTimer зависит от других заданий в очереди и их приоритетов.

DispatcherTimer MSDN

Вы можете попробовать вместо System.Timers.Timer.

System.Timers.Timer

+0

Я попробовал System.Timers.Timer, но это тоже произошло. – user3590450

+0

Я не понимаю, что вы имеете в виду. Если бы вы перешли через это с помощью контрольных точек, как вы знаете, что начало не произошло до того, как int b? Вы имеете в виду, что он не пошел на новый метод? – oppassum

+0

Я поставил свою точку останова в «timer.start» и conticnued --- Я видел, что «int b» произошло до «отметки времени» - – user3590450

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