2010-06-28 4 views
0

Спасибо, что нашли время, чтобы прочитать этот вопрос.Дизайн Qn RE: Общесистемный таймер (C#). Какой таймер в каком слое?

Я разрабатываю трехуровневое решение, написанное на C#, которое необходимо выполнять каждую минуту. Обработка должна быть инициирована одновременно из разных несвязанных частей программы.

Каков наилучший способ реализовать системный таймер? Должно ли это быть на уровне бизнес-логики или на уровне пользовательского интерфейса? Какой таймер лучше всего, например. один из System.Forms из System.Threading или? Есть ли эмпирическое правило для этой ситуации?

Большое спасибо

ответ

1

Я бы сказал, есть статический или синглтон класс в бизнес-слое разоблачить событие, которое может быть подписчики всеми остальными в приложении.

Я бы использовал System.Threading.Timer, который использует собственный поток. System.Windows.Forms, наоборот, предназначен для использования внутри элемента управления (и я думаю, что работает в потоке пользовательского интерфейса).

+0

Согласен. System.Threading.Timer должен использоваться (и он гаснет в собственном потоке) - и это событие таймера shoudl затем поднимает некоторые статические события, к которым могут присоединиться другие компоненты. –

+0

Спасибо. Мне нужно заглянуть в статические события, я не был уверен, что вы можете это сделать. Благодарю. – user335023