2015-10-17 5 views
0

Я программирую приложение WPF в VS C# 2010, и я программирую симуляцию. Эта симуляция может быть либо запущена автоматически (нажав кнопку «Авто»), либо шаг за шагом (нажав кнопку «Шаг»). Однако то, что я хочу реализовать, это контроль скорости.Временной интервал в диспетчереТеммер

Я разработал простой comboBox с 4 возможными элементами (1,2,5,10), которые представляют собой скорость моделирования. Вот код, я использую:

private void button6_Click(object sender, EventArgs e) 
    { 
     int speed = Int32.Parse(comboBox1.Text.ToString()); 
     dispathcerTimer = new DispatcherTimer(); 
     dispathcerTimer.Tick +=new EventHandler(dispatcherTimer_Tick); 
     dispathcerTimer.Interval = new TimeSpan(0, 0, 0, Convert.ToInt32(1000/speed)); 
     dispathcerTimer.Start(); 
    } 

Что это должно сделать, чтобы принять значение, выбранное в выпадающем списке и так TimeSpan не принимает дважды, только Int32, я должен использовать 4-й параметр, миллисекунды , Я думал, что выполнение 1000/скорости будет работать, но это абсолютно не так, время еще больше. Как изменить временной интервал, например, чтобы уменьшить его с 1 секунды (по умолчанию при скорости x1) до каждых 200 мс, когда пользователь выбирает параметр x5?

ответ

0

Вы используете неправильную перегруженность в TimeSpan, а четвертый аргумент - для second (первый - для day). Попробуйте этот простой статический метод: TimeSpan.FromMilliseconds:

dispathcerTimer.Interval = TimeSpan.FromMilliseconds(1000/speed); 
+1

работает как шарм, спасибо, сэр! :) –

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