Pytanie : Threaded lub async usługa

Cześć,

I potrzeba trochę radzić w jaki ścieżka robienie programm. I pytać
about ten niektóre czas temu, ale teraz i mieć więcej jasny wzrok ale. App być usługowy, to czekać na użytkownik logon i początek mój inny app. Ono także zegarek mój app zawsze. I ofcourse ono robić który na użytkownik który być logon. W Ten Sposób, gdy użytkownik loged dalej i on wyłaczać inny użytkownik wtedy nowy użytkownik mieć nowy przykład programm, i poprzedzający jeden mieć wciąż jego app running.

So, i mieć funkcjonalność gdy użytkownik logon (ISensLogon). I znać być i naprawdę potrzebować. Ponieważ i zawsze móc być proces bieg w niektóre czas interwał robienie mutex.

Second funkcjonalność być być proces bieg robienie mutex i ono. (W przyszłość i robić niektóre dodatkowy mechanizm, jak IPC).

I musieć rozwiązanie:

1. asynchroniczny -
I robić prosty klasa okno nasiono przedmiot (wydarzenie, mutex). Z ono, i móc wydarzenie więc klasa móc ono, i gdy wydarzenie occure ono ogień funkcja który binded ten wydarzenie w ono inicialization.

So mój pomysł być "Dodawać" wydarzenie który oglądać dla użytkownik logon. Gdy wydarzenie zdarzać się, podpalać funkcja "Dodawać" nowy wydarzenie który czekać na mutex. I gdy ten wydarzenie zdarzać się swój początek process.

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


2. threaded -

In magistrala nić, i po prostu czekać na użytkownik logon. Następnie, gdy użytkownik logon i robić nowy nić który bieg proces i zegarek dla mutex.

I mieć wielki pragnienie asynch metoda ponieważ ono wydawać się ambitny. Ale ono ciężki, i kod być ciężki utrzymanie i myśleć. Adivse rozwiązanie być hmm cleaner i think.

Could someone dawać adivse. Być może i omitt coś znacząco?

Odpowiedź : Threaded lub async usługa

The pierwszy wzór że ty wspominać właściwie mieć imię. Ono dzwonić the "Reaktor" wzór, che przekształcać wybrany/czekanie głosowanie opierać się wydarzenie w wydarzenie jechać callbacks (I zastanawiać się jeżeli wybrany być dlaczego swój nazwany reaktor). The reaktor (główny składnik) robić wszystkie the brudny pollling praca i ty móc po prostu ono wydarzenie gdy móc zdarzać się. http://en.wikipedia.org/wiki/Reactor_pattern

Przychodzić z powrotem the pytanie z czego znacząco, znacząco ono patrzeć jakby ty alwaysd potrzeba pracownik nić, dla the reaktor lub the proces monitor nić (jeśli the reaktor ono być using wydarzenie jechać API). Jeżeli być być the skrzynka wtedy the korzyść reaktor być oczywisty jeżeli ty mieć wiele wiele wydarzenie w tym samym czasie, jak mówić w twój skrzynka jeżeli ty musieć tuziny proces/mutexes wtedy reaktor ratować ty the koszt nić na monitor.

Z jednej strony, jeżeli swój właśnie sprawa pojedynczy pracownik nić wtedy dlaczego dodawać złożoność gdy ty móc łatwo rzecz z monitor nić? Ono być pewny być ambitny i kusić z wyszukany projekt (szczególnie gdy ty jeden przyjeżdżać przy jeden); I móc the pilenie:) ale pamiętać ono, niezawodność, prosta obsługa i utrzymanie być znacząco galanteryjny projekt. Mimo to, twój użytkownik dbać whethers swój reaktor opierać się projekt lub nie.

I sugerować że ty wysyłać dalszy szczegół, szczególnie pod względem scalabity perspektywa. Jak, ile przedmiot móc ty w tym samym czasie (w tym samym czasie), ile proces Etc.

Mieć Nadzieję że pomoc…

Inne rozwiązania  
 
programming4us programming4us