Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2013, 18:40   #1
Sashka_BezDelnik
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 26
По умолчанию Таймер

У меня есть таймер обратного отсчета

DispatcherTimer dim = new DispatcherTimer();
void Countdown(int count, TimeSpan interval, Action<int> ts) //таймер
{
LinearGradientBrush myBrush1 = new LinearGradientBrush();
myBrush1.StartPoint = new Point(0.75, 0.25);
myBrush1.GradientStops.Add(new GradientStop(Colors.Lime, 1.0));
tb.Foreground = myBrush1;

dim.Interval = interval;
dim.Tick += (_, a) =>
{
if (count-- == 0)
{
dim.Stop();
button2_Click(null, null);
}

else if (count < 6 && count > 0)
{
LinearGradientBrush myBrush = new LinearGradientBrush();
myBrush.StartPoint = new Point(0.75, 0.25);
myBrush.GradientStops.Add(new GradientStop(Colors.Red, 1.0));
tb.Foreground = myBrush;
ts(count);
dim.Start();
}

else
ts(count);

};
ts(count);
dim.Start();
}

который количество секунд count получает из базы данных

tim = Convert.ToInt32(dt.Rows[0][13]);
Countdown(tim, TimeSpan.FromSeconds(1), cur => tb.Text = cur.ToString());

Проблема в том, что у меня программа с тестами, и на каждый вопрос отдельное количество времени, и при переходе на следующий вопрос в таймере одновременно идет оставшееся время прошлого вопроса, и вопроса который проходится в данный момент. подскажите как мне очистить значение count
Sashka_BezDelnik вне форума Ответить с цитированием
Старый 08.01.2013, 13:35   #2
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

попробуй вне функции Countdown прописать только
Код:
DispatcherTimer dim
в самом начале функции
Код:
dim = new DispatcherTimer();
и если есть функция Dispose, то когда надо выключить таймер, т.е. все, работа завершена или время вышло
Код:
dim.Stop();
dim.Dispose();

Последний раз редактировалось Olejik; 08.01.2013 в 13:37.
Olejik вне форума Ответить с цитированием
Старый 08.01.2013, 16:02   #3
Sashka_BezDelnik
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 26
По умолчанию

Я все таки по-другому сделал, но все равно спасибо)
Решил сразу время на весь тест передавать
Sashka_BezDelnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таймер nattaella Компоненты Delphi 4 20.06.2011 22:04
таймер Hunter557 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 21.09.2010 21:40
Таймер timyr1997 Общие вопросы Delphi 2 07.08.2010 15:25
Таймер(C#) Bella Помощь студентам 0 23.03.2010 19:17
Таймер IVANSour Общие вопросы Delphi 2 18.01.2009 14:41