keldish, А вам и не нужно. там парадигма другая. Вы вешаете обработчик на событие. И уже он ловит событие и выставляет что то в вашем дата классе, а вы уже в бесконечном цикле что то там придумываете.
Хотя и бесконечный цикл не нужен, так как вы обрабатываете событие когда оно произошло
задача сделать программу которая в реальном времени меняет данные на экране в зависимости от нажатых кнопок и расчета математики. соответственно мне нужен цикл или вызов расчетов по таймеру или еще как-то. я могу обрабатывать KeyDown и иже с ним. записывать в некий флаг(и) и далее в своей процедуре обрабатывать. но мне кажется таймер не тот вариант. по этому бесконечный (вернее по условию, некого выхода) цикл!
расчет идет в реальном времени и зависит не только от нажатых клавиш. пользователь может не нажимать клавиши вовсе. диаграмма меняется во времени и (если такие были) от нажатия на клавиши
keldish, спас за уточнение но это ничего не меняет
такая у них парадигма
только евенты
"только хардкор"
// Handle the KeyDown event to determine the type of character entered into the control.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
// Determine whether the keystroke is a number from the top of the keyboard.
// Set the effect based upon the KeyState.
if ((e.KeyState & (8 + 32)) == (8 + 32) ... )
{
}
}
сергей кузьмин, зависит от задачи. моя задача очень родственна например игре где мы и "сидим в цикле", дальше действие развивается само по себе и реагирует если есть наше участие.
выход я в принципе знаю и описал ранее - вызываем по таймеру наши вычисления и в нем же или по отдельному таймеру можем обновлять график (что то типа регулировки FPS)? в KeyDown и KeyUp выставляем и убираем соответствующие влаги для необходимых клавиш. работать будет но по моему так не правильно.
keldish, расчет запускаем в отдельном потоке, на события клавиатуры вешаем обработчики при нажатии кнопки сохраняем в поле, при отпускании очищаем поле, в потоке мониторим это поле, ну и в потоке, через диспатчер обновление диаграммы запускаем.