Vraag : Ingepast of async de dienst

Hello,/>I adviseert de behoefte

about dit een tijdje geleden, maar heb ik nu meer duidelijke visie van dit. App is de dienst, die op gebruikersopening van een sessie en begin mijn andere app wacht. Het let ook op om mijn app altijd lopend te maken. En ofcourse doet het dit per gebruiker die opening van een sessie is. Zo, wanneer de gebruiker loged is en hij op een andere gebruiker overschakelt de toen nieuwe gebruiker nieuwe instantie van programm heeft, en vorige men nog zijn app running.

So heeft, heb ik functionaliteit om te luisteren wanneer gebruikersopening van een sessie (ISensLogon). Ik weet niet werkelijk nodig dit is. Omdat ik altijd kan letten op ben proces die in sommige tijdintervallen door functionaliteit mutex.

Second te maken ben te letten op ben proces die door te maken lopen mutex en wacht op het. (Maak ik voortaan sommige extra mechanismen, zoals IPC).

I moet oplossingen:

1. asynchroon -
I heeft eenvoudige klasse gemaakt om me te helpen de voorwerpen van de vensterspit behandelen (gebeurtenis, mutex). Met het, kan ik toevoegen de gebeurtenis zo klasse op het kan wachten, en toen gebeurtenisoccure het brandfunctie die is aan deze gebeurtenis daarin inicialization binded.

So mijn idee „toevoegt“ gebeurtenis is dat voor gebruikersopening van een sessie let op. Wanneer de gebeurtenis voorkomt, „voegt“ de in brand gestoken functie nieuwe gebeurtenis toe dat op mutex wacht. En wanneer deze gebeurtenis zijn begin process.

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


2. ingepast -/>In hoofddraad

I grote wens hebben om asynch methode te kiezen omdat het aan me ambitieus schijnt te zijn. Maar het hardst aan code, en code zal aan onderhoud hardst zijn dat ik heb gedacht. De ingepaste oplossing is hmm reinigingsmachine i think.

Could iemand me adivse geeft. Misschien i omitt belangrijk iets?

Antwoord : Ingepast of async de dienst

Het eerste patroon dat u eigenlijk vermeldde heeft een naam. Het heeft het patroon van de „Reactor“ geroepen, dat omzet uitgezocht/opiniepeiling gebaseerde gebeurtenissen controlerend in gebeurtenis gedreven callbacks wacht (ik ben benieuwd of is dat waarom zijn geroepen reactor). De reactor (hoofdcomponenten) doet al vuil pollling werk en u kunt het eenvoudig vertellen om een gebeurtenis in brand te steken wanneer iets gebeurt. http://en.wikipedia.org/wiki/Reactor_pattern

Terug komend over de vraag waarvan belangrijker is, goed kijkt het als u alwaysd zal vereisen een arbeidersdraad, is dat voor de reactor of de draad van de procesmonitor (tenzij de reactor zelf gebeurtenis gedreven API gebruikt). Als dat het geval toen is is het voordeel van reactor duidelijker als u veel vele gebeurtenissen hebt tezelfdertijd op te letten als zegt in uw geval als u dozens processen/mutexes moet controleren een reactor bespaart u dan de kosten van een draad per monitor.

Enerzijds, als zijn enkel een kwestie toevoeg van één enkele arbeidersdraad toen waarom ingewikkeldheid wanneer u dingen met een monitordraad kunt gemakkelijk beheren? Het is zeker is ambitieus en verleidend om met verfijnde ontwerpen (vooral wanneer u bij één zelf bent aangekomen) te gaan; Ik kan de drang begrijpen:) maar let op het, betrouwbaarheid, zijn de handigheid en het onderhoud belangrijker dan buitensporig ontwerp. Na allen, of niet geeft uw gebruiker niet whethers zijn reactor gebaseerd ontwerp.

Ik stel voor dat u verdere details, vooral met betrekking tot scalabityvooruitzichten post. Als, hoeveel voorwerpen u (maximum) kunt tezelfdertijd op letten, hoeveel processen enz.

Hoop die… helpt

Andere oplossingen  
 
programming4us programming4us