Короткий ответ
Из кода, который вы разместили, действительно только кажется, что вам нужно изменить код на , отключить флажок в событии CheckChanged
и активируют его в событии timer1_Tick
(а также Stop
таймер в событии Tick
).
Полный ответ
У Winforms есть элемент управления Timer
, который вы можете использовать для этого. После того, как вы добавите Timer
в конструктор, установите для свойства Interval
количество миллисекунд, которое вы хотите подождать, прежде чем активировать флажок (1
секунда - 1000
миллисекунд, поэтому 15 минут - 15
мин * 60
сек / мин * 1000
мс / сек или 900,000
мс). Затем дважды щелкните по нему, чтобы создать обработчик события Tick
(или добавьте его в ваше событие Form_Load
, как я делал ниже).
Затем, в событии CheckChanged
, если флажок не установлен, отключите флажок и запустите таймер.
Затем, в событии Tick
, просто включите флажок (помните, это событие срабатывает после того, как прошло Interval
миллисекунд) и остановите таймер.
Например:
private void Form1_Load(object sender, EventArgs e)
{
// These could also be done in through designer & property window instead
timer1.Tick += timer1_Tick; // Hook up the Tick event
timer1.Interval = (int) TimeSpan.FromMinutes(15).TotalMilliseconds; // Set the Interval
}
private void timer1_Tick(object sender, EventArgs e)
{
// When the Interval amount of time has elapsed, enable the checkbox and stop the timer
checkBox1.Enabled = true;
timer1.Stop();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (!checkBox1.Checked)
{
// When the checkbox is unchecked, disable it and start the timer
checkBox1.Enabled = false;
timer1.Start();
}
}
В дополнение к профилировщику, который был упомянут, Вы могли бы также выключить свои контексты OpenGL. Если Вы заметите ускорение, то Вы будете знать, что это - Ваш графический материал, и можно сфокусировать оптимизации соответственно.
Очки присуждаются за шведский юмор.
Как я могу разыскать его?
dotTrace - http://www.jetbrains.com/profiler/
Я никогда не использовал OpenGL таким способом сам, но Вы могли бы хотеть посмотреть на путь в этом, контексты OpenGL зеркально отражаются. При переключении от одной страницы до другого Вы могли бы получать сброс устройства (в терминах DirectX), который мог вызывать задержку.
Если вообще возможный имеют устройство, тянут к задней Системе. Рисование. Битовый массив и использование, которые побитово отображают на экранах. Сделайте свой код OpenGL, знающий о текущей странице, пользователь идет, и Вы могли бы получить скорость, Вы ищете.
Для тестирования этого прежде, чем внести огромные изменения попытайтесь удалить дисплеи OpenGL на форме.
Это - весь прихоть.
Вы делаете какую-либо другую обработку во время "экранного события" зеркального отражения? кроме просто разрешения форме быть перерисованным? Если Вы обрабатываете что-то между зеркальными отражениями (возможно, Ваше дополнение C++?), и Вы не многопоточность, Вы получаете того белого эффект. Форма, вероятно, ожидает в течение процессорного времени для перерисовки себя.