Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF +таймер / 4 сообщений из 4, страница 1 из 1
17.12.2011, 19:14
    #37581263
WPF +таймер
Каким образом можно заставить приложение на WPF каждый день в назначенное время выполнять какое-то действие?
Например, в 20.00 выводить месседжбокс)
...
Рейтинг: 0 / 0
17.12.2011, 23:22
    #37581401
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF +таймер
ОЧЕНЬ НУЖНО,
Использовать System.Timers.Timers.
Но тут есть кое-какие подводные камешки.
Вот как создать таймер и запустить его:
Код: c#
1.
2.
3.
4.
5.
6.
System.Timers.Timer timer = new System.Timers.Timer(1000);
// задаем первый обработчик
            timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerHandler1);
// задаем второй обработчик
            timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerHandler2);
            timer.Enabled = true;


Тут самое интересно далее. Дело в том, что System.Timers.Time - потоковый таймер, т.е. он создает событие в отдельном потоке, поэтому из обработчика OnTimerHandle1 и OnTimerHandle2 вы не сможете получиться доступ к GUI. Это и есть маленький камешек.
Решается сие безобразие с помошью диспетчера потоков.

Код: c#
1.
2.
3.
4.
5.
private void OnTimerHandler1(object sender, ElapsedEventArgs e)
{
       this.Dispatcher.Invoke(new IdleDelegate(CheckTriggers), System.Windows.Threading.DispatcherPriority.Normal, null);
}
private delegate void IdleDelegate();



В строке new IdleDelegate(CheckTriggers) вы передаете делегат в котором и будет выполняться всё что вам надо. Но учтите, что Invoke - предназначен для кратковренной операции, что запустить поток в котором тербуется пользовательский ответ используетй BeginInvoke.
...
Рейтинг: 0 / 0
17.12.2011, 23:52
    #37581419
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF +таймер
thunder2,

DispatcherTimer религия запрещает?
...
Рейтинг: 0 / 0
18.12.2011, 00:13
    #37581443
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF +таймер
Изопропилthunder2,

DispatcherTimer религия запрещает?

Нет, не запрещает. Просто не знал о нем. Век живи, век учись )).
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF +таймер / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]