2010-06-28 20 views
0

Merci d'avoir pris le temps de lire cette question.Conception Qn RE: temporisateur à l'échelle du système (C#). Quelle minuterie dans quelle couche?

Je suis en train de concevoir une solution à trois niveaux écrite en C# qui doit effectuer un traitement à chaque minute. Le traitement doit être initié en même temps à partir de différentes parties non-connectées du programme.

Quelle est la meilleure façon de mettre en œuvre une minuterie à l'échelle du système? Devrait-il être dans la couche de logique métier ou dans la couche d'interface utilisateur? Quel type de minuterie est le meilleur, par ex. un de System.Forms de System.Threading, ou? Y a-t-il une règle empirique pour cette situation?

Un grand merci

Répondre

1

Je dirais ont une classe statique ou singleton dans votre couche d'affaires exposer un événement, qui peut être souscrite par tout le monde dans l'application.

Je voudrais utiliser System.Threading.Timer, qui utilise son propre thread. System.Windows.Forms, à l'inverse, est destiné à être utilisé dans un contrôle (et je pense qu'il s'exécute dans le thread UI).

+0

Je suis d'accord. System.Threading.Timer devrait être utilisé (et il coïncide dans son propre thread) - et cet événement timer devrait alors déclencher des événements statiques, auxquels d'autres composants pourraient s'abonner. –

+0

Merci. J'ai besoin de regarder dans les événements statiques, je n'étais pas sûr que vous pourriez avoir ces derniers. Merci. – user335023