Question : Service fileté ou d'async

Bonjour, le besoin du

I peu conseillent dans quel chemin de faire le programm pour choisir. Je demandais au
about ceci il y a quelque temps, mais maintenant j'ai une vision plus claire de ceci. Le $$etAPP est service, cette attente l'ouverture d'utilisateur et débuts mon autre $$etAPP. Il également montres pour faire mon $$etAPP fonctionnant toujours. Et ofcourse il font ceci par utilisateur qui est ouverture. Ainsi, quand l'utilisateur loged dessus et il commutent à un autre utilisateur alors que le nouvel utilisateur ont le nouvel exemple du programm, et le précédent avoir toujours son $$etAPP running.

So, j'ont la fonctionnalité à écouter quand ouverture d'utilisateur (ISensLogon). Je ne sais pas est ce vraiment nécessaire. Puisque je toujours peux observer est processus fonctionnant dans quelques intervalles de temps en faisant la fonctionnalité de mutex.

Second doit observer est processus fonctionnant en faisant le mutex et l'attente elle. (À l'avenir je fais quelques mécanismes additionnels, comme l'IPC). le

I doivent des solutions :

1. asynchrone - le
I ont fait la classe simple pour m'aider à manipuler des objets de grain de fenêtres (événement, mutex). Avec lui, je peux ajouter l'événement ainsi la classe peut l'attendre, et quand occure d'événement il la fonction du feu qui binded à cet événement dans lui inicialization. mon idée du

So est « ajoutent » l'événement qui observent pour l'ouverture d'utilisateur. Quand l'événement se produisent, la fonction mise le feu « ajoutent » le nouvel événement qui attendent le mutex. Et quand cet événement se produisent son début process.

LogonEvent->SetCommand (AddMutexEventToEventListener) ;
EventListener->Add (LogonEvent) ; le


2. a fileté - fil principal du

In, j'attends simplement l'ouverture d'utilisateur. Après, quand l'ouverture d'utilisateur je font le nouveau fil qui courent le processus et la montre pour mutex.

I avoir le grand désir de choisir la méthode d'asynch parce qu'elle semble à moi être ambitieuse. Mais il le plus dur au code, et au code sera le plus dur à l'entretien que je pense. La solution filetée est décapant de hmm i think.

Could que quelqu'un me donnent l'adivse. Peut-être j'omitt quelque chose importante ?

class= de

Réponse : Service fileté ou d'async

Le premier modèle que vous avez mentionné a réellement un nom. Il a appelé le modèle de « réacteur », qui transforme des événements basés par vote choisis/attente surveillant en rappels de service entraînés par les événements (je me demande si c'est pourquoi son réacteur appelé). Le réacteur (composants principaux) fait tout le travail et vous pollling sales peut simplement le dire de mettre le feu à un événement quand quelque chose se produit. http://en.wikipedia.org/wiki/Reactor_pattern

Revient à la question dont plus important, bonne il regarde comme vous le besoin d'alwaysd un fil d'ouvrier, pour être celui pour le réacteur ou le fil de processus de moniteur (à moins que le réacteur est lui-même using l'api entraîné par les événements). Si c'est le cas alors que l'avantage du réacteur sont plus évident si vous avez beaucoup de beaucoup d'événements à observer en même temps, comme dire dans votre cas si vous devez surveiller des douzaines de processus/de mutexes alors un réacteur vous sauve le coût d'un fil par moniteur.

D'une part, si son juste une question d'un fil simple d'ouvrier puis pourquoi ajouter la complexité quand vous pouvez facilement contrôler des choses avec un fil de moniteur ? Il est sûr est ambitieux et tentant d'aller de pair avec des conceptions sophistiquées (particulièrement quand vous êtes arrivé à une vous-même) ; Je peux comprendre le recommander :) mais s'occuper de lui, fiabilité, facilité d'utilisation et l'entretien sont plus important que la conception de fantaisie. Après tous, votre utilisateur ne s'inquiète pas des whethers son réacteur basé conception ou pas.

Je propose que vous signaliez d'autres détails, particulièrement en ce qui concerne le scalabity prospecte. Comme, combien d'objets peuvent vous observer en même temps (maximum), combien de processus etc.

Espérer qu'aides…

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us