|
WPF +таймер
|
|||
---|---|---|---|
#18+
Каким образом можно заставить приложение на WPF каждый день в назначенное время выполнять какое-то действие? Например, в 20.00 выводить месседжбокс) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2011, 19:14 |
|
WPF +таймер
|
|||
---|---|---|---|
#18+
ОЧЕНЬ НУЖНО, Использовать System.Timers.Timers. Но тут есть кое-какие подводные камешки. Вот как создать таймер и запустить его: Код: c# 1. 2. 3. 4. 5. 6.
Тут самое интересно далее. Дело в том, что System.Timers.Time - потоковый таймер, т.е. он создает событие в отдельном потоке, поэтому из обработчика OnTimerHandle1 и OnTimerHandle2 вы не сможете получиться доступ к GUI. Это и есть маленький камешек. Решается сие безобразие с помошью диспетчера потоков. Код: c# 1. 2. 3. 4. 5.
В строке new IdleDelegate(CheckTriggers) вы передаете делегат в котором и будет выполняться всё что вам надо. Но учтите, что Invoke - предназначен для кратковренной операции, что запустить поток в котором тербуется пользовательский ответ используетй BeginInvoke. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2011, 23:22 |
|
WPF +таймер
|
|||
---|---|---|---|
#18+
thunder2, DispatcherTimer религия запрещает? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2011, 23:52 |
|
|
start [/forum/topic.php?fid=21&msg=37581443&tid=1442019]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 318ms |
total: | 451ms |
0 / 0 |